| | |
| | | import static org.opends.quicksetup.util.Utils.*; |
| | | import static org.opends.server.tools.ConfigureWindowsService.*; |
| | | |
| | | /** |
| | | * This class is in charge of performing the uninstallation of Open DS. |
| | | */ |
| | | /** This class is in charge of performing the uninstallation of Open DS. */ |
| | | public class Uninstaller extends GuiApplication implements CliApplication { |
| | | |
| | | private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); |
| | | private ProgressStep status = UninstallProgressStep.NOT_STARTED; |
| | | private boolean runStarted; |
| | |
| | | logger.info(LocalizableMessage.raw("Uninstaller is created.")); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public LocalizableMessage getFrameTitle() { |
| | | LocalizableMessage defaultVal = INFO_FRAME_UNINSTALL_TITLE.get(DynamicConstants.PRODUCT_NAME); |
| | | return Utils.getCustomizedObject("INFO_FRAME_UNINSTALL_TITLE", defaultVal, LocalizableMessage.class); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public UserData createUserData() { |
| | | UninstallUserData data = new UninstallUserData(); |
| | |
| | | return data; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public WizardStep getFirstWizardStep() { |
| | | return Step.CONFIRM_UNINSTALL; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public WizardStep getNextWizardStep(WizardStep step) { |
| | | Step nextStep = null; |
| | |
| | | return nextStep; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public WizardStep getPreviousWizardStep(WizardStep step) { |
| | | Step prevStep = null; |
| | |
| | | return prevStep; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public WizardStep getFinishedStep() { |
| | | return Step.FINISHED; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean finishOnLeft() |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean canGoBack(WizardStep step) { |
| | | return false; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean canGoForward(WizardStep step) { |
| | | return false; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean canFinish(WizardStep step) { |
| | | return step == Step.CONFIRM_UNINSTALL; |
| | |
| | | return step == Step.CONFIRM_UNINSTALL; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void nextClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == PROGRESS) { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void closeClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == PROGRESS) { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Update the UserData object according to the content of the review |
| | | * panel. |
| | | */ |
| | | /** Update the UserData object according to the content of the review panel. */ |
| | | private void updateUserUninstallDataForConfirmUninstallPanel(QuickSetup qs) |
| | | throws UserDataException { |
| | | UninstallUserData uud = getUninstallUserData(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void quitClicked(WizardStep step, QuickSetup qs) { |
| | | if (step == Step.PROGRESS) { |
| | |
| | | qs.quit(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public LocalizableMessage getCloseButtonToolTip() { |
| | | return INFO_CLOSE_BUTTON_UNINSTALL_TOOLTIP.get(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public LocalizableMessage getFinishButtonToolTip() { |
| | | return INFO_FINISH_BUTTON_UNINSTALL_TOOLTIP.get(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public LocalizableMessage getFinishButtonLabel() { |
| | | return INFO_FINISH_BUTTON_UNINSTALL_LABEL.get(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void previousClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == PROGRESS) { |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void notifyListeners(Integer ratio, LocalizableMessage currentPhaseSummary, |
| | | final LocalizableMessage newLogDetail) |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean finishClicked(final WizardStep cStep, final QuickSetup qs) { |
| | | if (cStep == Step.CONFIRM_UNINSTALL) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void updateUserData(WizardStep step, QuickSetup qs) { |
| | | // do nothing; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void setWizardDialogState(QuickSetupDialog dlg, |
| | | UserData userData, |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public UserData createUserData(Launcher launcher) throws UserDataException, |
| | | ApplicationException, ClientException |
| | | { |
| | | parser = (UninstallerArgumentParser) launcher.getArgumentParser(); |
| | | return cliHelper.createUserData(parser, launcher.getArguments()); |
| | | return cliHelper.createUserData(parser); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public String getInstallationPath() { |
| | | return getInstallPathFromClasspath(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public String getInstancePath() { |
| | | return getInstancePathFromInstallPath(getInstallPathFromClasspath()); |
| | |
| | | return ue; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ReturnCode getReturnCode() { |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * Initialize the different map used in this class. |
| | | */ |
| | | /** Initialize the different map used in this class. */ |
| | | private void initMaps() { |
| | | hmSummary.put(UninstallProgressStep.NOT_STARTED, |
| | | getFormattedSummary(INFO_SUMMARY_UNINSTALL_NOT_STARTED.get())); |
| | |
| | | totalTime += hmTime.get(UninstallProgressStep.DELETING_INSTALLATION_FILES); |
| | | steps.add(UninstallProgressStep.DELETING_INSTALLATION_FILES); |
| | | |
| | | if (getUninstallUserData().getExternalDbsToRemove().size() > 0) { |
| | | if (!getUninstallUserData().getExternalDbsToRemove().isEmpty()) { |
| | | totalTime += hmTime.get( |
| | | UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES); |
| | | steps.add(UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES); |
| | | } |
| | | |
| | | if (getUninstallUserData().getExternalLogsToRemove().size() > 0) { |
| | | if (!getUninstallUserData().getExternalLogsToRemove().isEmpty()) { |
| | | totalTime += hmTime.get( |
| | | UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES); |
| | | steps.add(UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES); |
| | |
| | | hmRatio.put(UninstallProgressStep.FINISHED_WITH_ERROR, 100); |
| | | } |
| | | |
| | | /** |
| | | * Actually performs the uninstall in this thread. The thread is blocked. |
| | | */ |
| | | /** Actually performs the uninstall in this thread. The thread is blocked. */ |
| | | @Override |
| | | public void run() { |
| | | runStarted = true; |
| | |
| | | } else { |
| | | notifyListeners(null); |
| | | } |
| | | |
| | | } catch (ApplicationException ex) { |
| | | logger.error(LocalizableMessage.raw("Error: "+ex, ex)); |
| | | ue = ex; |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ProgressStep getCurrentProgressStep() { |
| | | return status; |
| | |
| | | return hmSummary.get(step); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isFinished() { |
| | | return getCurrentProgressStep() == |
| | |
| | | UninstallProgressStep.FINISHED_WITH_ERROR_DELETING; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isCancellable() { |
| | | return false; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void cancel() { |
| | | // do nothing; not cancellable |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void windowClosing(QuickSetupDialog dlg, WindowEvent evt) { |
| | | if (dlg.getDisplayedStep() == PROGRESS || |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ButtonName getInitialFocusButtonName() { |
| | | return ButtonName.FINISH; |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public Set<? extends WizardStep> getWizardSteps() { |
| | | Set<WizardStep> setSteps = new HashSet<>(); |
| | |
| | | return Collections.unmodifiableSet(setSteps); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public QuickSetupStepPanel createWizardStepPanel(WizardStep step) { |
| | | if (step == Step.CONFIRM_UNINSTALL) { |
| | |
| | | } |
| | | |
| | | if (rootFiles != null) { |
| | | /* The following is done to have a moving progress bar when we delete |
| | | * the installation files. |
| | | */ |
| | | // The following is done to have a moving progress bar when we delete the installation files |
| | | int totalRatio = 0; |
| | | ArrayList<Integer> cumulatedRatio = new ArrayList<>(); |
| | | for (File f : rootFiles) { |
| | |
| | | private boolean canDeleteClassesDir = |
| | | !Utils.directoryExistsAndIsNotEmpty(classesDir.getAbsolutePath()); |
| | | |
| | | |
| | | private File installationPath = installation.getRootDirectory(); |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean accept(File file) { |
| | | UninstallUserData userData = getUninstallUserData(); |
| | |
| | | return isWindowsServiceEnabled.booleanValue(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ApplicationTrustManager getTrustManager() |
| | | { |
| | |
| | | return getUserData().getConnectTimeout(); |
| | | } |
| | | } |
| | | |