@Override public void activate() { initManagedSdk(); if (isInstallSupported()) { ManagedCloudSdkUpdateService.getInstance().activate(); } }
/** Checks if the default SDK stored path contains a valid Cloud SDK. */ public Set<CloudSdkValidationResult> validateCloudSdk() { CloudSdkService instance = CloudSdkService.getInstance(); return validateCloudSdk(instance != null ? instance.getSdkHomePath() : null); }
public static CloudSdkServiceUserSettings getInstance() { if (instance == null) { instance = new CloudSdkServiceUserSettings(); } return instance; }
@Override public void notifyIfVersionOutOfDate() { CloudSdkValidator sdkValidator = CloudSdkValidator.getInstance(); if (sdkValidator .validateCloudSdk() .contains(CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION)) { String message = "<p>" + CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION.getMessage() + "</p>"; showNotification( CloudSdkMessageBundle.message("appengine.cloudsdk.version.support.title"), message); } }
@Override public SdkStatus getStatus() { String sdkPath = CloudSdkServiceUserSettings.getInstance().getCustomSdkPath(); if (Strings.isNullOrEmpty(sdkPath)) { return SdkStatus.NOT_AVAILABLE; } boolean malformedSdkPath = CloudSdkValidator.isMalformedCloudSdkPath(sdkPath); return malformedSdkPath ? SdkStatus.INVALID : SdkStatus.READY; }
/** * Called when managed SDK update operation (update or install) completes, either with success or * failure. */ void notifySdkUpdateCompleted() { CloudSdkServiceUserSettings.getInstance().setLastAutomaticUpdateTimestamp(getClock().millis()); }
public void notifyManagedSdkJobFailure(ManagedSdkJobType jobType, String errorMessage) { String message = CloudSdkMessageBundle.message( "managedsdk.failure." + jobType.name().toLowerCase(), errorMessage); showNotification(message, NotificationType.ERROR); }
@Test public void actual_update_notifiesListeners_onProcessingStart() { sdkService.addStatusUpdateListener(mockStatusUpdateListener); makeMockSdkInstalled(MOCK_SDK_PATH); emulateMockSdkUpdateProcess(); sdkService.update(); verify(mockStatusUpdateListener).onSdkProcessingStarted(); }
@Test public void successful_update_showsNotification() { makeMockSdkInstalled(MOCK_SDK_PATH); emulateMockSdkUpdateProcess(); sdkService.update(); verify(mockUiPresenter) .notifyManagedSdkJobSuccess(ManagedSdkJobType.UPDATE, ManagedSdkJobResult.PROCESSED); }
/** Callback when a user selected and applied a new cloud sdk type. */ public void onNewCloudSdkServiceTypeSelected(CloudSdkServiceType newServiceType) { if (supportedCloudSdkServices.containsKey(newServiceType)) { supportedCloudSdkServices.get(newServiceType).activate(); } else { throw new UnsupportedCloudSdkTypeException(newServiceType.name()); } }
@Test public void actual_install_notifiesListeners_onProcessingStart() { sdkService.addStatusUpdateListener(mockStatusUpdateListener); emulateMockSdkInstallationProcess(MOCK_SDK_PATH); sdkService.install(); // for real new install, 2 invocations - SDK and app-engine-java components. verify(mockStatusUpdateListener, times(2)).onSdkProcessingStarted(); }
@Test public void successful_install_showsNotification() { emulateMockSdkInstallationProcess(MOCK_SDK_PATH); sdkService.install(); verify(mockUiPresenter) .notifyManagedSdkJobSuccess(ManagedSdkJobType.INSTALL, ManagedSdkJobResult.PROCESSED); }
@Test public void sdkUpToDate_install_passes_valid_jobSuccessResult() { makeMockSdkInstalled(MOCK_SDK_PATH); sdkService.install(); verify(mockUiPresenter) .notifyManagedSdkJobSuccess(ManagedSdkJobType.INSTALL, ManagedSdkJobResult.UP_TO_DATE); }
private void updateStatus(SdkStatus sdkStatus) { // may be called from install job thread, make sure listeners receive update on UI thread. invokeOnApplicationUIThread( () -> { this.sdkStatus = sdkStatus; notifyListeners(this, sdkStatus); }); }
@Override public void run() { checkSdk(sdkPath); } }
@Override public void apply() throws ConfigurationException { if (cloudSdkPanel != null) { cloudSdkPanel.apply(); } }
@Override public void reset() { if (cloudSdkPanel != null) { cloudSdkPanel.reset(); } }
@Override public void update(String message) { setProgressText(message); }
public void notifyManagedSdkJobSuccess(ManagedSdkJobType jobType, ManagedSdkJobResult jobResult) { String message = CloudSdkMessageBundle.message("managedsdk.success." + jobType.name().toLowerCase()); switch (jobResult) { case PROCESSED: showNotification(message, NotificationType.INFORMATION); return; default: // do nothing, everything is up-to-date. } }
public void notifyManagedSdkJobCancellation(ManagedSdkJobType jobType) { String message = CloudSdkMessageBundle.message("managedsdk.cancel." + jobType.name().toLowerCase()); showNotification(message, NotificationType.WARNING); }