@Override protected void doExecute(ApplicationService applicationService) throws ApplicationServiceException { Set<Application> applications = applicationService.getApplications(); console.printf("%s%10s%n", "State", "Name"); for (Application curApp : applications) { ApplicationStatus appStatus = applicationService.getApplicationStatus(curApp); // only show applications that have features (gets rid of repo // aggregator 'apps') if (!curApp.getFeatures().isEmpty()) { console.print("["); switch (appStatus.getState()) { case ACTIVE: console.print(Ansi.ansi().fg(Ansi.Color.GREEN).toString()); break; case FAILED: console.print(Ansi.ansi().fg(Ansi.Color.RED).toString()); break; case INACTIVE: // don't set a color break; case UNKNOWN: console.print(Ansi.ansi().fg(Ansi.Color.YELLOW).toString()); break; default: break; } console.print(StringUtils.rightPad(appStatus.getState().toString(), STATUS_COLUMN_LENGTH)); console.print(Ansi.ansi().reset().toString()); console.println("] " + curApp.getName()); } } return; }
public void waitForRequiredApps(String... appNames) throws InterruptedException { ApplicationService appService = getApplicationService(); if (appNames.length > 0) { for (String appName : appNames) { try { Application app = appService.getApplication(appName); if (app != null) { ApplicationStatus status = appService.getApplicationStatus(app); if (ACTIVE != status.getState()) { appService.startApplication(appName); } } else { throw new ApplicationServiceException( "Unable to determine Application for [" + appName + "]."); } } catch (ApplicationServiceException e) { fail("Failed to start boot feature: " + e.getMessage()); } waitForAllBundles(); } } }