/** * Checks for Managed Cloud SDK status and creates/installs it if necessary. * * @return Path of the installed managed SDK, null if error occurred while installing. * @throws InterruptedException if Managed Cloud SDK has been interrupted by {@link * #cancelInstallOrUpdate()} ()} */ private ManagedSdkJobResult installManagedSdk() throws Exception { ManagedSdkJobResult installResult = installSdk(); ManagedSdkJobResult appEngineJavaResult = installAppEngineJavaComponent(); // return up-to-date only if both SDK and app engine Java were up-to-date return (installResult == ManagedSdkJobResult.UP_TO_DATE && appEngineJavaResult == ManagedSdkJobResult.UP_TO_DATE) ? ManagedSdkJobResult.UP_TO_DATE : ManagedSdkJobResult.PROCESSED; }