From ae171bffab3d4c19c00de9a0c78e42a8f4bb9627 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Mon, 02 Apr 2007 22:25:59 +0000
Subject: [PATCH] - Succeeded in removing the Utils.isUninstall() method. All the logic that was being controlled by if statements using this method has been moved to the applications themselves (except for a few hacks that I've documented in the code)
---
opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java | 1054 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 574 insertions(+), 480 deletions(-)
diff --git a/opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java b/opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java
index 7ee1c77..8d1af1f 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/uninstaller/Uninstaller.java
@@ -28,9 +28,14 @@
package org.opends.quicksetup.uninstaller;
import org.opends.quicksetup.*;
+import static org.opends.quicksetup.Step.PROGRESS;
+import static org.opends.quicksetup.Step.REVIEW;
+import org.opends.quicksetup.installer.FieldName;
import org.opends.quicksetup.ui.*;
import org.opends.quicksetup.util.Utils;
+import org.opends.quicksetup.util.BackgroundTask;
import org.opends.server.tools.ConfigureWindowsService;
+import org.opends.server.protocols.ldap.LDAPResultCode;
import javax.swing.*;
import java.io.*;
@@ -45,10 +50,10 @@
private ProgressStep status = UninstallProgressStep.NOT_STARTED;
private HashMap<ProgressStep, Integer> hmRatio =
- new HashMap<ProgressStep, Integer>();
+ new HashMap<ProgressStep, Integer>();
private HashMap<ProgressStep, String> hmSummary =
- new HashMap<ProgressStep, String>();
+ new HashMap<ProgressStep, String>();
private ApplicationException ue;
@@ -73,14 +78,14 @@
/**
* {@inheritDoc}
*/
- public Step getFirstWizardStep() {
+ public WizardStep getFirstWizardStep() {
return Step.CONFIRM_UNINSTALL;
}
/**
* {@inheritDoc}
*/
- public Step getNextWizardStep(Step step) {
+ public WizardStep getNextWizardStep(WizardStep step) {
Step nextStep = null;
if (step != null && step.equals(Step.CONFIRM_UNINSTALL)) {
nextStep = Step.PROGRESS;
@@ -91,39 +96,271 @@
/**
* {@inheritDoc}
*/
+ public WizardStep getPreviousWizardStep(WizardStep step) {
+ Step prevStep = null;
+ if (step != null && step.equals(Step.PROGRESS)) {
+ prevStep = Step.CONFIRM_UNINSTALL;
+ }
+ return prevStep;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canGoBack(WizardStep step) {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canGoForward(WizardStep step) {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canFinish(WizardStep step) {
+ return step == Step.CONFIRM_UNINSTALL;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canQuit(WizardStep step) {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canClose(WizardStep step) {
+ return step == Step.PROGRESS;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canCancel(WizardStep step) {
+ return step == Step.CONFIRM_UNINSTALL;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void nextClicked(WizardStep cStep, QuickSetup qs) {
+ if (cStep == PROGRESS) {
+ throw new IllegalStateException(
+ "Cannot click on next from progress step");
+ } else if (cStep == REVIEW) {
+ throw new IllegalStateException("Cannot click on next from review step");
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void closeClicked(WizardStep cStep, QuickSetup qs) {
+ if (cStep == PROGRESS) {
+ if (isFinished()
+ || qs.displayConfirmation(getMsg("confirm-close-uninstall-msg"),
+ getMsg("confirm-close-uninstall-title")))
+ {
+ qs.quit();
+ }
+ } else {
+ throw new IllegalStateException(
+ "Close only can be clicked on PROGRESS step");
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void cancelClicked(WizardStep cStep, QuickSetup qs) {
+ if (cStep == Step.CONFIRM_UNINSTALL) {
+ qs.quit();
+ } else {
+ throw new IllegalStateException(
+ "Cancel only can be clicked on CONFIRM_UNINSTALL step");
+ }
+ }
+
+ /**
+ * Update the UserData object according to the content of the review
+ * panel.
+ */
+ private void updateUserUninstallDataForConfirmUninstallPanel(QuickSetup qs)
+ throws UserDataException {
+ UninstallUserData uud = (UninstallUserData) getUserData();
+ uud.setRemoveLibrariesAndTools(
+ (Boolean) qs.getFieldValue(FieldName.REMOVE_LIBRARIES_AND_TOOLS));
+ uud.setRemoveDatabases(
+ (Boolean) qs.getFieldValue(FieldName.REMOVE_DATABASES));
+ uud.setRemoveConfigurationAndSchema(
+ (Boolean) qs.getFieldValue(
+ FieldName.REMOVE_CONFIGURATION_AND_SCHEMA));
+ uud.setRemoveBackups(
+ (Boolean) qs.getFieldValue(FieldName.REMOVE_BACKUPS));
+ uud.setRemoveLDIFs(
+ (Boolean) qs.getFieldValue(FieldName.REMOVE_LDIFS));
+ uud.setRemoveLogs(
+ (Boolean) qs.getFieldValue(FieldName.REMOVE_LOGS));
+
+ Set<String> dbs = new HashSet<String>();
+ Set s = (Set) qs.getFieldValue(FieldName.EXTERNAL_DB_DIRECTORIES);
+ for (Object v : s) {
+ dbs.add((String) v);
+ }
+
+ Set<String> logs = new HashSet<String>();
+ s = (Set) qs.getFieldValue(FieldName.EXTERNAL_LOG_FILES);
+ for (Object v : s) {
+ logs.add((String) v);
+ }
+
+ uud.setExternalDbsToRemove(dbs);
+ uud.setExternalLogsToRemove(logs);
+
+ if ((dbs.size() == 0) &&
+ (logs.size() == 0) &&
+ !uud.getRemoveLibrariesAndTools() &&
+ !uud.getRemoveDatabases() &&
+ !uud.getRemoveConfigurationAndSchema() &&
+ !uud.getRemoveBackups() &&
+ !uud.getRemoveLDIFs() &&
+ !uud.getRemoveLogs()) {
+ throw new UserDataException(Step.CONFIRM_UNINSTALL,
+ getMsg("nothing-selected-to-uninstall"));
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void quitClicked(WizardStep step, QuickSetup qs) {
+ if (step == Step.PROGRESS) {
+ throw new IllegalStateException(
+ "Cannot click on quit from progress step");
+ }
+ qs.quit();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getCloseButtonToolTip() {
+ return "close-button-uninstall-tooltip";
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getFinishButtonToolTip() {
+ return "finish-button-uninstall-tooltip";
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getFinishButtonLabel() {
+ return "finish-button-uninstall-label";
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void previousClicked(WizardStep cStep, QuickSetup qs) {
+ if (cStep == Step.PROGRESS) {
+ throw new IllegalStateException(
+ "Cannot click on previous from progress step");
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void finishClicked(final WizardStep cStep, final QuickSetup qs) {
+ if (cStep == Step.CONFIRM_UNINSTALL) {
+ BackgroundTask worker = new BackgroundTask() {
+ public Object processBackgroundTask() throws UserDataException {
+ try {
+ updateUserUninstallDataForConfirmUninstallPanel(qs);
+ }
+ catch (UserDataException uude) {
+ throw uude;
+ } catch (Throwable t) {
+ throw new UserDataException(cStep,
+ getThrowableMsg("bug-msg", t));
+ }
+ return CurrentInstallStatus.isServerRunning();
+ }
+
+ public void backgroundTaskCompleted(Object returnValue,
+ Throwable throwable) {
+ qs.getDialog().workerFinished();
+ if (throwable != null) {
+ qs.displayError(throwable.getLocalizedMessage(),
+ getMsg("error-title"));
+ } else {
+ boolean serverRunning = (Boolean) returnValue;
+ if (!serverRunning) {
+ getUserData().setStopServer(false);
+ if (qs.displayConfirmation(
+ getMsg("confirm-uninstall-server-not-running-msg"),
+ getMsg("confirm-uninstall-server-not-running-title"))) {
+ qs.launchUninstallation();
+ qs.setCurrentStep(getNextWizardStep(cStep));
+ }
+ } else {
+ if (qs.displayConfirmation(
+ getMsg("confirm-uninstall-server-running-msg"),
+ getMsg("confirm-uninstall-server-running-title"))) {
+ getUserData().setStopServer(true);
+ qs.launchUninstallation();
+ qs.setCurrentStep(getNextWizardStep(cStep));
+ } else {
+ getUserData().setStopServer(false);
+ }
+ }
+ }
+ }
+ };
+ qs.getDialog().workerStarted();
+ worker.startBackgroundTask();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void updateUserData(WizardStep step, QuickSetup qs) {
+ // do nothing;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
protected void setWizardDialogState(QuickSetupDialog dlg,
UserData userData,
- Step step) {
- // Set the default button for the frame
- switch (step) {
- case CONFIRM_UNINSTALL:
- dlg.setDefaultButton(ButtonName.FINISH);
- break;
-
- case PROGRESS:
- dlg.setDefaultButton(ButtonName.CLOSE);
- break;
- }
-
- // Set the focus for the current step
- switch (step) {
- case CONFIRM_UNINSTALL:
- dlg.setFocusOnButton(ButtonName.FINISH);
- break;
-
- case PROGRESS:
- dlg.setFocusOnButton(ButtonName.CLOSE);
- dlg.setButtonEnabled(ButtonName.CLOSE, false);
- break;
- }
+ WizardStep step) {
+ if (step == Step.CONFIRM_UNINSTALL) {
+ dlg.setDefaultButton(ButtonName.FINISH);
+ dlg.setFocusOnButton(ButtonName.FINISH);
+ } else if (step == Step.PROGRESS) {
+ dlg.setDefaultButton(ButtonName.CLOSE);
+ dlg.setFocusOnButton(ButtonName.CLOSE);
+ dlg.setButtonEnabled(ButtonName.CLOSE, false);
+ }
}
/**
* {@inheritDoc}
*/
public UserData createUserData(String[] args, CurrentInstallStatus status)
- throws UserDataException
- {
+ throws UserDataException {
return cliHelper.createUserData(args, status);
}
@@ -137,86 +374,72 @@
/**
* Returns the ApplicationException that might occur during installation or
* <CODE>null</CODE> if no exception occurred.
+ *
* @return the ApplicationException that might occur during installation or
- * <CODE>null</CODE> if no exception occurred.
+ * <CODE>null</CODE> if no exception occurred.
*/
- public ApplicationException getException()
- {
+ public ApplicationException getException() {
return ue;
}
/**
* Initialize the different map used in this class.
- *
*/
- private void initMaps()
- {
+ private void initMaps() {
hmSummary.put(UninstallProgressStep.NOT_STARTED,
- getFormattedSummary(getMsg("summary-uninstall-not-started")));
+ getFormattedSummary(getMsg("summary-uninstall-not-started")));
hmSummary.put(UninstallProgressStep.STOPPING_SERVER,
- getFormattedSummary(getMsg("summary-stopping")));
+ getFormattedSummary(getMsg("summary-stopping")));
hmSummary.put(UninstallProgressStep.DISABLING_WINDOWS_SERVICE,
- getFormattedSummary(getMsg("summary-disabling-windows-service")));
+ getFormattedSummary(getMsg("summary-disabling-windows-service")));
hmSummary.put(UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES,
- getFormattedSummary(getMsg("summary-deleting-external-db-files")));
+ getFormattedSummary(getMsg("summary-deleting-external-db-files")));
hmSummary.put(UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES,
- getFormattedSummary(getMsg("summary-deleting-external-log-files")));
+ getFormattedSummary(getMsg("summary-deleting-external-log-files")));
hmSummary.put(UninstallProgressStep.REMOVING_EXTERNAL_REFERENCES,
- getFormattedSummary(getMsg("summary-deleting-external-references")));
+ getFormattedSummary(
+ getMsg("summary-deleting-external-references")));
hmSummary.put(UninstallProgressStep.DELETING_INSTALLATION_FILES,
- getFormattedSummary(getMsg("summary-deleting-installation-files")));
+ getFormattedSummary(getMsg("summary-deleting-installation-files")));
String successMsg;
- if (Utils.isCli())
- {
- if (getUninstallUserData().getRemoveLibrariesAndTools())
- {
+ if (Utils.isCli()) {
+ if (getUninstallUserData().getRemoveLibrariesAndTools()) {
String[] arg = new String[1];
- if (Utils.isWindows())
- {
- arg[0] = getUninstallBatFile()+getLineBreak()+
- getTab()+getLibrariesPath();
- }
- else
- {
- arg[0] = getLibrariesPath();
+ if (Utils.isWindows()) {
+ arg[0] = getUninstallBatFile() + getLineBreak() +
+ getTab() + getLibrariesPath();
+ } else {
+ arg[0] = getLibrariesPath();
}
successMsg = getMsg(
- "summary-uninstall-finished-successfully-remove-jarfiles-cli",
- arg);
- }
- else
- {
+ "summary-uninstall-finished-successfully-remove-jarfiles-cli",
+ arg);
+ } else {
successMsg = getMsg("summary-uninstall-finished-successfully-cli");
}
- }
- else
- {
- if (getUninstallUserData().getRemoveLibrariesAndTools())
- {
+ } else {
+ if (getUninstallUserData().getRemoveLibrariesAndTools()) {
String[] arg = {getLibrariesPath()};
successMsg = getMsg(
- "summary-uninstall-finished-successfully-remove-jarfiles", arg);
- }
- else
- {
+ "summary-uninstall-finished-successfully-remove-jarfiles", arg);
+ } else {
successMsg = getMsg("summary-uninstall-finished-successfully");
}
}
hmSummary.put(UninstallProgressStep.FINISHED_SUCCESSFULLY,
- getFormattedSuccess(successMsg));
+ getFormattedSuccess(successMsg));
hmSummary.put(UninstallProgressStep.FINISHED_WITH_ERROR,
- getFormattedError(getMsg("summary-uninstall-finished-with-error")));
-
+ getFormattedError(getMsg("summary-uninstall-finished-with-error")));
/*
- * hmTime contains the relative time that takes for each task to be
- * accomplished. For instance if stopping takes twice the time of
- * deleting files, the value for downloading will be the double of the
- * value for extracting.
- */
+ * hmTime contains the relative time that takes for each task to be
+ * accomplished. For instance if stopping takes twice the time of
+ * deleting files, the value for downloading will be the double of the
+ * value for extracting.
+ */
HashMap<UninstallProgressStep, Integer> hmTime =
- new HashMap<UninstallProgressStep, Integer>();
+ new HashMap<UninstallProgressStep, Integer>();
hmTime.put(UninstallProgressStep.STOPPING_SERVER, 15);
hmTime.put(UninstallProgressStep.DISABLING_WINDOWS_SERVICE, 5);
hmTime.put(UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES, 30);
@@ -226,41 +449,35 @@
int totalTime = 0;
ArrayList<UninstallProgressStep> steps =
- new ArrayList<UninstallProgressStep>();
- if (getUserData().getStopServer())
- {
+ new ArrayList<UninstallProgressStep>();
+ if (getUserData().getStopServer()) {
totalTime += hmTime.get(UninstallProgressStep.STOPPING_SERVER);
steps.add(UninstallProgressStep.STOPPING_SERVER);
}
- if (isWindowsServiceEnabled())
- {
+ if (isWindowsServiceEnabled()) {
totalTime += hmTime.get(UninstallProgressStep.DISABLING_WINDOWS_SERVICE);
steps.add(UninstallProgressStep.DISABLING_WINDOWS_SERVICE);
}
totalTime += hmTime.get(UninstallProgressStep.DELETING_INSTALLATION_FILES);
steps.add(UninstallProgressStep.DELETING_INSTALLATION_FILES);
- if (getUninstallUserData().getExternalDbsToRemove().size() > 0)
- {
+ if (getUninstallUserData().getExternalDbsToRemove().size() > 0) {
totalTime += hmTime.get(
- UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES);
+ UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES);
steps.add(UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES);
}
- if (getUninstallUserData().getExternalLogsToRemove().size() > 0)
- {
+ if (getUninstallUserData().getExternalLogsToRemove().size() > 0) {
totalTime += hmTime.get(
- UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES);
+ UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES);
steps.add(UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES);
}
int cumulatedTime = 0;
- for (UninstallProgressStep s : steps)
- {
+ for (UninstallProgressStep s : steps) {
Integer statusTime = hmTime.get(s);
hmRatio.put(s, (100 * cumulatedTime) / totalTime);
- if (statusTime != null)
- {
+ if (statusTime != null) {
cumulatedTime += statusTime;
}
}
@@ -271,35 +488,28 @@
/**
* Actually performs the uninstall in this thread. The thread is blocked.
- *
*/
- public void run()
- {
+ public void run() {
initMaps();
PrintStream origErr = System.err;
PrintStream origOut = System.out;
- try
- {
+ try {
PrintStream err = new ErrorPrintStream();
PrintStream out = new OutputPrintStream();
- if (!Utils.isCli())
- {
- System.setErr(err);
- System.setOut(out);
+ if (!Utils.isCli()) {
+ System.setErr(err);
+ System.setOut(out);
}
boolean displaySeparator = false;
- if (getUserData().getStopServer())
- {
+ if (getUserData().getStopServer()) {
status = UninstallProgressStep.STOPPING_SERVER;
stopServer();
displaySeparator = true;
}
- if (isWindowsServiceEnabled())
- {
+ if (isWindowsServiceEnabled()) {
status = UninstallProgressStep.DISABLING_WINDOWS_SERVICE;
- if (displaySeparator)
- {
+ if (displaySeparator) {
notifyListeners(getTaskSeparator());
}
disableWindowsService();
@@ -307,11 +517,9 @@
}
Set<String> dbsToDelete = getUninstallUserData().getExternalDbsToRemove();
- if (dbsToDelete.size() > 0)
- {
+ if (dbsToDelete.size() > 0) {
status = UninstallProgressStep.DELETING_EXTERNAL_DATABASE_FILES;
- if (displaySeparator)
- {
+ if (displaySeparator) {
notifyListeners(getTaskSeparator());
}
@@ -321,12 +529,10 @@
Set<String> logsToDelete =
getUninstallUserData().getExternalLogsToRemove();
- if (logsToDelete.size() > 0)
- {
+ if (logsToDelete.size() > 0) {
status = UninstallProgressStep.DELETING_EXTERNAL_LOG_FILES;
- if (displaySeparator)
- {
+ if (displaySeparator) {
notifyListeners(getTaskSeparator());
}
@@ -336,52 +542,44 @@
UninstallUserData userData = getUninstallUserData();
boolean somethingToDelete = userData.getRemoveBackups() ||
- userData.getRemoveConfigurationAndSchema() ||
- userData.getRemoveDatabases() ||
- userData.getRemoveLDIFs() ||
- userData.getRemoveLibrariesAndTools() ||
- userData.getRemoveLogs();
- if (displaySeparator && somethingToDelete)
- {
+ userData.getRemoveConfigurationAndSchema() ||
+ userData.getRemoveDatabases() ||
+ userData.getRemoveLDIFs() ||
+ userData.getRemoveLibrariesAndTools() ||
+ userData.getRemoveLogs();
+ if (displaySeparator && somethingToDelete) {
notifyListeners(getTaskSeparator());
}
- if (somethingToDelete)
- {
+ if (somethingToDelete) {
status = UninstallProgressStep.DELETING_INSTALLATION_FILES;
deleteInstallationFiles(getRatio(status),
- getRatio(UninstallProgressStep.FINISHED_SUCCESSFULLY));
+ getRatio(UninstallProgressStep.FINISHED_SUCCESSFULLY));
}
status = UninstallProgressStep.FINISHED_SUCCESSFULLY;
- if (Utils.isCli())
- {
- notifyListeners(getLineBreak()+getLineBreak()+getSummary(status));
- }
- else
- {
+ if (Utils.isCli()) {
+ notifyListeners(getLineBreak() + getLineBreak() + getSummary(status));
+ } else {
notifyListeners(null);
}
- } catch (ApplicationException ex)
- {
+ } catch (ApplicationException ex) {
ue = ex;
status = UninstallProgressStep.FINISHED_WITH_ERROR;
String msg = getFormattedError(ex, true);
notifyListeners(msg);
}
- catch (Throwable t)
- {
+ catch (Throwable t) {
ue = new ApplicationException(
- ApplicationException.Type.BUG,
- getThrowableMsg("bug-msg", t), t);
+ ApplicationException.Type.BUG,
+ getThrowableMsg("bug-msg", t), t);
status = UninstallProgressStep.FINISHED_WITH_ERROR;
String msg = getFormattedError(ue, true);
notifyListeners(msg);
}
- if (!Utils.isCli())
- {
- System.setErr(origErr);
- System.setOut(origOut);
+ if (!Utils.isCli()) {
+ System.setErr(origErr);
+ System.setOut(origOut);
}
}
@@ -395,24 +593,24 @@
/**
* Returns an integer that specifies which percentage of the whole
* installation has been completed.
+ *
* @param step the UninstallProgressStep for which we want to get the ratio.
* @return an integer that specifies which percentage of the whole
- * uninstallation has been completed.
+ * uninstallation has been completed.
*/
- public Integer getRatio(ProgressStep step)
- {
+ public Integer getRatio(ProgressStep step) {
return hmRatio.get(step);
}
/**
* Returns an formatted representation of the summary for the specified
* UninstallProgressStep.
+ *
* @param step the UninstallProgressStep for which we want to get the summary.
* @return an formatted representation of the summary for the specified
- * UninstallProgressStep.
+ * UninstallProgressStep.
*/
- public String getSummary(ProgressStep step)
- {
+ public String getSummary(ProgressStep step) {
return hmSummary.get(step);
}
@@ -448,44 +646,41 @@
/**
* {@inheritDoc}
*/
- public Set<Step> getWizardSteps() {
- return EnumSet.of(Step.CONFIRM_UNINSTALL,
- Step.PROGRESS);
+ public Set<WizardStep> getWizardSteps() {
+ Set<WizardStep> setSteps = new HashSet<WizardStep>();
+ setSteps.add(Step.CONFIRM_UNINSTALL);
+ setSteps.add(Step.PROGRESS);
+ return Collections.unmodifiableSet(setSteps);
}
/**
* {@inheritDoc}
*/
- public QuickSetupStepPanel createWizardStepPanel(Step step) {
+ public QuickSetupStepPanel createWizardStepPanel(WizardStep step) {
QuickSetupStepPanel p = null;
- switch (step) {
- case CONFIRM_UNINSTALL:
- p = new ConfirmUninstallPanel(installStatus);
- break;
- case PROGRESS:
- p = new ProgressPanel();
- break;
+ if (step == Step.CONFIRM_UNINSTALL) {
+ p = new ConfirmUninstallPanel(installStatus);
+ } else if (step == Step.PROGRESS) {
+ p = new ProgressPanel();
}
return p;
}
/**
* This methods stops the server.
+ *
* @throws ApplicationException if something goes wrong.
*/
- private void stopServer() throws ApplicationException
- {
+ private void stopServer() throws ApplicationException {
notifyListeners(getFormattedProgress(getMsg("progress-stopping")) +
- getLineBreak());
+ getLineBreak());
ArrayList<String> argList = new ArrayList<String>();
- if (Utils.isWindows())
- {
+ if (Utils.isWindows()) {
argList.add(Utils.getPath(getBinariesPath(),
Utils.getWindowsStopFileName()));
- } else
- {
+ } else {
argList.add(Utils.getPath(getBinariesPath(),
Utils.getUnixStopFileName()));
}
@@ -499,14 +694,15 @@
*/
env.remove("JAVA_BIN");
- try
- {
+ try {
Process process = pb.start();
BufferedReader err =
- new BufferedReader(new InputStreamReader(process.getErrorStream()));
+ new BufferedReader(
+ new InputStreamReader(process.getErrorStream()));
BufferedReader out =
- new BufferedReader(new InputStreamReader(process.getInputStream()));
+ new BufferedReader(
+ new InputStreamReader(process.getInputStream()));
/* Create these objects to resend the stop process output to the details
* area.
@@ -516,12 +712,9 @@
int returnValue = process.waitFor();
- int clientSideError =
- org.opends.server.protocols.ldap.LDAPResultCode.CLIENT_SIDE_CONNECT_ERROR;
- if ((returnValue == clientSideError) || (returnValue == 0))
- {
- if (Utils.isWindows())
- {
+ int clientSideError = LDAPResultCode.CLIENT_SIDE_CONNECT_ERROR;
+ if ((returnValue == clientSideError) || (returnValue == 0)) {
+ if (Utils.isWindows()) {
/*
* Sometimes the server keeps some locks on the files.
* TODO: remove this code once stop-ds returns properly when server
@@ -530,42 +723,34 @@
int nTries = 10;
boolean stopped = false;
- for (int i=0; i<nTries && !stopped; i++)
- {
+ for (int i = 0; i < nTries && !stopped; i++) {
stopped = !CurrentInstallStatus.isServerRunning();
- if (!stopped)
- {
+ if (!stopped) {
String msg =
- getFormattedLog(getMsg("progress-server-waiting-to-stop"))+
- getLineBreak();
+ getFormattedLog(getMsg("progress-server-waiting-to-stop")) +
+ getLineBreak();
notifyListeners(msg);
- try
- {
+ try {
Thread.sleep(5000);
}
- catch (Exception ex)
- {
+ catch (Exception ex) {
}
}
}
- if (!stopped)
- {
+ if (!stopped) {
returnValue = -1;
}
}
}
- if (returnValue == clientSideError)
- {
+ if (returnValue == clientSideError) {
String msg = getLineBreak() +
- getFormattedLog(getMsg("progress-server-already-stopped"))+
- getLineBreak();
+ getFormattedLog(getMsg("progress-server-already-stopped")) +
+ getLineBreak();
notifyListeners(msg);
- }
- else if (returnValue != 0)
- {
+ } else if (returnValue != 0) {
String[] arg = {String.valueOf(returnValue)};
String msg = getMsg("error-stopping-server-code", arg);
@@ -576,133 +761,111 @@
throw new ApplicationException(ApplicationException.Type.STOP_ERROR,
msg,
null);
- }
- else
- {
+ } else {
String msg = getFormattedLog(getMsg("progress-server-stopped"));
notifyListeners(msg);
}
- } catch (IOException ioe)
- {
+ } catch (IOException ioe) {
throw new ApplicationException(ApplicationException.Type.STOP_ERROR,
- getThrowableMsg("error-stopping-server", ioe), ioe);
+ getThrowableMsg("error-stopping-server", ioe), ioe);
}
- catch (InterruptedException ie)
- {
+ catch (InterruptedException ie) {
throw new ApplicationException(ApplicationException.Type.BUG,
- getThrowableMsg("error-stopping-server", ie), ie);
+ getThrowableMsg("error-stopping-server", ie), ie);
}
}
/**
* Deletes the external database files specified in the provided Set.
+ *
* @param dbFiles the database directories to be deleted.
* @throws ApplicationException if something goes wrong.
*/
private void deleteExternalDatabaseFiles(Set<String> dbFiles)
- throws ApplicationException
- {
+ throws ApplicationException {
notifyListeners(getFormattedProgress(
- getMsg("progress-deleting-external-db-files")) +
- getLineBreak());
- for (String path : dbFiles)
- {
+ getMsg("progress-deleting-external-db-files")) +
+ getLineBreak());
+ for (String path : dbFiles) {
deleteRecursively(new File(path));
}
}
/**
* Deletes the external database files specified in the provided Set.
+ *
* @param logFiles the log files to be deleted.
* @throws ApplicationException if something goes wrong.
*/
private void deleteExternalLogFiles(Set<String> logFiles)
- throws ApplicationException
- {
+ throws ApplicationException {
notifyListeners(getFormattedProgress(
- getMsg("progress-deleting-external-log-files")) +
- getLineBreak());
- for (String path : logFiles)
- {
+ getMsg("progress-deleting-external-log-files")) +
+ getLineBreak());
+ for (String path : logFiles) {
deleteRecursively(new File(path));
}
}
/**
* Deletes the files under the installation path.
+ *
* @throws ApplicationException if something goes wrong.
*/
private void deleteInstallationFiles(int minRatio, int maxRatio)
- throws ApplicationException
- {
+ throws ApplicationException {
notifyListeners(getFormattedProgress(
- getMsg("progress-deleting-installation-files")) +
- getLineBreak());
+ getMsg("progress-deleting-installation-files")) +
+ getLineBreak());
File f = new File(Utils.getInstallPathFromClasspath());
InstallationFilesToDeleteFilter filter =
- new InstallationFilesToDeleteFilter();
+ new InstallationFilesToDeleteFilter();
File[] rootFiles = f.listFiles();
- if (rootFiles != null)
- {
+ if (rootFiles != null) {
/* The following is done to have a moving progress bar when we delete
* the installation files.
*/
int totalRatio = 0;
ArrayList<Integer> cumulatedRatio = new ArrayList<Integer>();
- for (int i=0; i<rootFiles.length; i++)
- {
- if (filter.accept(rootFiles[i]))
- {
- int relativeRatio;
- if (equalsOrDescendant(rootFiles[i], new File(getLibrariesPath())))
- {
- relativeRatio = 10;
- }
- else if (equalsOrDescendant(rootFiles[i], new File(getBinariesPath())))
- {
- relativeRatio = 5;
- }
- else if (equalsOrDescendant(rootFiles[i], new File(getConfigPath())))
- {
- relativeRatio = 5;
- }
- else if (equalsOrDescendant(rootFiles[i], new File(getBackupsPath())))
- {
- relativeRatio = 20;
- }
- else if (equalsOrDescendant(rootFiles[i], new File(getLDIFsPath())))
- {
- relativeRatio = 20;
- }
- else if (equalsOrDescendant(rootFiles[i],
- new File(getDatabasesPath())))
- {
- relativeRatio = 50;
- }
- else if (equalsOrDescendant(rootFiles[i], new File(getLogsPath())))
- {
- relativeRatio = 30;
- }
- else
- {
- relativeRatio = 2;
- }
- cumulatedRatio.add(totalRatio);
- totalRatio += relativeRatio;
- }
- else
- {
- cumulatedRatio.add(totalRatio);
- }
+ for (int i = 0; i < rootFiles.length; i++) {
+ if (filter.accept(rootFiles[i])) {
+ int relativeRatio;
+ if (equalsOrDescendant(rootFiles[i], new File(getLibrariesPath()))) {
+ relativeRatio = 10;
+ } else
+ if (equalsOrDescendant(rootFiles[i], new File(getBinariesPath()))) {
+ relativeRatio = 5;
+ } else
+ if (equalsOrDescendant(rootFiles[i], new File(getConfigPath()))) {
+ relativeRatio = 5;
+ } else
+ if (equalsOrDescendant(rootFiles[i], new File(getBackupsPath()))) {
+ relativeRatio = 20;
+ } else
+ if (equalsOrDescendant(rootFiles[i], new File(getLDIFsPath()))) {
+ relativeRatio = 20;
+ } else if (equalsOrDescendant(rootFiles[i],
+ new File(getDatabasesPath()))) {
+ relativeRatio = 50;
+ } else
+ if (equalsOrDescendant(rootFiles[i], new File(getLogsPath()))) {
+ relativeRatio = 30;
+ } else {
+ relativeRatio = 2;
+ }
+ cumulatedRatio.add(totalRatio);
+ totalRatio += relativeRatio;
+ } else {
+ cumulatedRatio.add(totalRatio);
+ }
}
Iterator<Integer> it = cumulatedRatio.iterator();
- for (int i=0; i<rootFiles.length; i++)
- {
+ for (int i = 0; i < rootFiles.length; i++) {
int beforeRatio = minRatio +
- ((it.next() * (maxRatio - minRatio)) / totalRatio);
+ ((it.next() * (maxRatio - minRatio)) / totalRatio);
hmRatio.put(UninstallProgressStep.DELETING_INSTALLATION_FILES,
- beforeRatio);
+ beforeRatio);
deleteRecursively(rootFiles[i], filter);
}
hmRatio.put(UninstallProgressStep.DELETING_INSTALLATION_FILES, maxRatio);
@@ -711,171 +874,150 @@
/**
* Returns the path to the quicksetup jar file.
+ *
* @return the path to the quicksetup jar file.
*/
- private String getQuicksetupJarPath()
- {
+ private String getQuicksetupJarPath() {
return Utils.getPath(getLibrariesPath(), "quicksetup.jar");
}
/**
* Returns the path to the opends jar file.
+ *
* @return the path to the opends jar file.
*/
- private String getOpenDSJarPath()
- {
+ private String getOpenDSJarPath() {
return Utils.getPath(getLibrariesPath(), "OpenDS.jar");
}
-
-
/**
* Returns the path to the uninstall.bat file.
+ *
* @return the path to the uninstall.bat file.
*/
- private String getUninstallBatFile()
- {
+ private String getUninstallBatFile() {
return Utils.getPath(Utils.getInstallPathFromClasspath(), "uninstall.bat");
}
/**
* Returns the path to the backup files under the install path.
+ *
* @return the path to the backup files under the install path.
*/
- private String getBackupsPath()
- {
+ private String getBackupsPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getBackupsRelativePath());
+ Utils.getBackupsRelativePath());
}
/**
* Returns the path to the LDIF files under the install path.
+ *
* @return the path to the LDIF files under the install path.
*/
- private String getLDIFsPath()
- {
+ private String getLDIFsPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getLDIFsRelativePath());
+ Utils.getLDIFsRelativePath());
}
/**
* Returns the path to the config files under the install path.
+ *
* @return the path to the config files under the install path.
*/
- private String getConfigPath()
- {
+ private String getConfigPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getConfigRelativePath());
+ Utils.getConfigRelativePath());
}
/**
* Returns the path to the log files under the install path.
+ *
* @return the path to the log files under the install path.
*/
- private String getLogsPath()
- {
+ private String getLogsPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getLogsRelativePath());
+ Utils.getLogsRelativePath());
}
/**
* Returns the path to the database files under the install path.
+ *
* @return the path to the database files under the install path.
*/
- private String getDatabasesPath()
- {
+ private String getDatabasesPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getDatabasesRelativePath());
+ Utils.getDatabasesRelativePath());
}
/**
* Deletes everything below the specified file.
+ *
* @param file the path to be deleted.
* @throws ApplicationException if something goes wrong.
*/
- private void deleteRecursively(File file) throws ApplicationException
- {
+ private void deleteRecursively(File file) throws ApplicationException {
deleteRecursively(file, null);
}
/**
* Deletes everything below the specified file.
- * @param file the path to be deleted.
+ *
+ * @param file the path to be deleted.
* @param filter the filter of the files to know if the file can be deleted
- * directly or not.
+ * directly or not.
* @throws ApplicationException if something goes wrong.
*/
private void deleteRecursively(File file, FileFilter filter)
- throws ApplicationException
- {
- if (file.exists())
- {
- if (file.isFile())
- {
- if (filter != null)
- {
- if (filter.accept(file))
- {
+ throws ApplicationException {
+ if (file.exists()) {
+ if (file.isFile()) {
+ if (filter != null) {
+ if (filter.accept(file)) {
delete(file);
}
- }
- else
- {
+ } else {
delete(file);
}
- }
- else
- {
+ } else {
File[] children = file.listFiles();
- if (children != null)
- {
- for (int i=0; i<children.length; i++)
- {
+ if (children != null) {
+ for (int i = 0; i < children.length; i++) {
deleteRecursively(children[i], filter);
}
}
- if (filter != null)
- {
- if (filter.accept(file))
- {
+ if (filter != null) {
+ if (filter.accept(file)) {
delete(file);
}
- }
- else
- {
+ } else {
delete(file);
}
}
- }
- else
- {
+ } else {
// Just tell that the file/directory does not exist.
String[] arg = {file.toString()};
notifyListeners(getFormattedWarning(
- getMsg("deleting-file-does-not-exist", arg)));
+ getMsg("deleting-file-does-not-exist", arg)));
}
}
/**
* Deletes the specified file.
+ *
* @param file the file to be deleted.
* @throws ApplicationException if something goes wrong.
*/
- private void delete(File file) throws ApplicationException
- {
+ private void delete(File file) throws ApplicationException {
String[] arg = {file.getAbsolutePath()};
boolean isFile = file.isFile();
- if (isFile)
- {
+ if (isFile) {
notifyListeners(getFormattedWithPoints(
- getMsg("progress-deleting-file", arg)));
- }
- else
- {
+ getMsg("progress-deleting-file", arg)));
+ } else {
notifyListeners(getFormattedWithPoints(
- getMsg("progress-deleting-directory", arg)));
+ getMsg("progress-deleting-directory", arg)));
}
boolean delete = false;
@@ -885,99 +1027,81 @@
* is stopped.
*/
int nTries = 5;
- for (int i=0; i<nTries && !delete; i++)
- {
+ for (int i = 0; i < nTries && !delete; i++) {
delete = file.delete();
- if (!delete)
- {
- try
- {
+ if (!delete) {
+ try {
Thread.sleep(1000);
}
- catch (Exception ex)
- {
+ catch (Exception ex) {
}
}
}
- if (!delete)
- {
+ if (!delete) {
String errMsg;
- if (isFile)
- {
+ if (isFile) {
errMsg = getMsg("error-deleting-file", arg);
- }
- else
- {
+ } else {
errMsg = getMsg("error-deleting-directory", arg);
}
throw new ApplicationException(
- ApplicationException.Type.FILE_SYSTEM_ERROR, errMsg, null);
+ ApplicationException.Type.FILE_SYSTEM_ERROR, errMsg, null);
}
- notifyListeners(getFormattedDone()+getLineBreak());
+ notifyListeners(getFormattedDone() + getLineBreak());
}
- private boolean equalsOrDescendant(File file, File directory)
- {
+ private boolean equalsOrDescendant(File file, File directory) {
return file.equals(directory) ||
- Utils.isDescendant(file.toString(), directory.toString());
+ Utils.isDescendant(file.toString(), directory.toString());
}
/**
* {@inheritDoc}
*/
- protected String getBinariesPath()
- {
+ protected String getBinariesPath() {
return Utils.getPath(Utils.getInstallPathFromClasspath(),
- Utils.getBinariesRelativePath());
+ Utils.getBinariesRelativePath());
}
+
/**
* This class is used to read the standard error and standard output of the
* Stop process.
- *
+ * <p/>
* When a new log message is found notifies the
* UninstallProgressUpdateListeners of it. If an error occurs it also
* notifies the listeners.
- *
*/
- private class StopReader
- {
+ private class StopReader {
private boolean isFirstLine;
/**
* The protected constructor.
- * @param reader the BufferedReader of the stop process.
+ *
+ * @param reader the BufferedReader of the stop process.
* @param isError a boolean indicating whether the BufferedReader
- * corresponds to the standard error or to the standard output.
+ * corresponds to the standard error or to the standard output.
*/
- public StopReader(final BufferedReader reader,final boolean isError)
- {
+ public StopReader(final BufferedReader reader, final boolean isError) {
final String errorTag =
- isError ? "error-reading-erroroutput" : "error-reading-output";
+ isError ? "error-reading-erroroutput" : "error-reading-output";
isFirstLine = true;
- Thread t = new Thread(new Runnable()
- {
- public void run()
- {
- try
- {
+ Thread t = new Thread(new Runnable() {
+ public void run() {
+ try {
String line = reader.readLine();
- while (line != null)
- {
+ while (line != null) {
StringBuilder buf = new StringBuilder();
- if (!isFirstLine)
- {
+ if (!isFirstLine) {
buf.append(formatter.getLineBreak());
}
- if (isError)
- {
+ if (isError) {
buf.append(getFormattedLogError(line));
- } else
- {
+ } else {
buf.append(getFormattedLog(line));
}
notifyListeners(buf.toString());
@@ -985,13 +1109,11 @@
line = reader.readLine();
}
- } catch (IOException ioe)
- {
+ } catch (IOException ioe) {
String errorMsg = getThrowableMsg(errorTag, ioe);
notifyListeners(errorMsg);
- } catch (Throwable t)
- {
+ } catch (Throwable t) {
String errorMsg = getThrowableMsg(errorTag, t);
notifyListeners(errorMsg);
}
@@ -1006,8 +1128,7 @@
* required to know which are the files that can be deleted directly and which
* not.
*/
- class InstallationFilesToDeleteFilter implements FileFilter
- {
+ class InstallationFilesToDeleteFilter implements FileFilter {
File quicksetupFile = new File(getQuicksetupJarPath());
File openDSFile = new File(getOpenDSJarPath());
File librariesFile = new File(getLibrariesPath());
@@ -1015,64 +1136,57 @@
File uninstallBatFile = new File(getUninstallBatFile());
File installationPath = new File(Utils.getInstallPathFromClasspath());
+
/**
* {@inheritDoc}
*/
- public boolean accept(File file)
- {
+ public boolean accept(File file) {
UninstallUserData userData = getUninstallUserData();
boolean[] uData = {
- userData.getRemoveLibrariesAndTools(),
- userData.getRemoveLibrariesAndTools(),
- userData.getRemoveDatabases(),
- userData.getRemoveLogs(),
- userData.getRemoveConfigurationAndSchema(),
- userData.getRemoveBackups(),
- userData.getRemoveLDIFs()
+ userData.getRemoveLibrariesAndTools(),
+ userData.getRemoveLibrariesAndTools(),
+ userData.getRemoveDatabases(),
+ userData.getRemoveLogs(),
+ userData.getRemoveConfigurationAndSchema(),
+ userData.getRemoveBackups(),
+ userData.getRemoveLDIFs()
};
String[] parentFiles = {
- getLibrariesPath(),
- getBinariesPath(),
- getDatabasesPath(),
- getLogsPath(),
- getConfigPath(),
- getBackupsPath(),
- getLDIFsPath()
+ getLibrariesPath(),
+ getBinariesPath(),
+ getDatabasesPath(),
+ getLogsPath(),
+ getConfigPath(),
+ getBackupsPath(),
+ getLDIFsPath()
};
- boolean accept =
- !installationPath.equals(file)
- && !equalsOrDescendant(file, librariesFile)
- && !quicksetupFile.equals(file)
- && !openDSFile.equals(file);
+ boolean accept =
+ !installationPath.equals(file)
+ && !equalsOrDescendant(file, librariesFile)
+ && !quicksetupFile.equals(file)
+ && !openDSFile.equals(file);
- if (accept && Utils.isWindows() && Utils.isCli())
- {
- accept = !uninstallBatFile.equals(file);
- }
+ if (accept && Utils.isWindows() && Utils.isCli()) {
+ accept = !uninstallBatFile.equals(file);
+ }
- for (int i=0; i<uData.length && accept; i++)
- {
- accept &= uData[i] ||
- !equalsOrDescendant(file, new File(parentFiles[i]));
- }
+ for (int i = 0; i < uData.length && accept; i++) {
+ accept &= uData[i] ||
+ !equalsOrDescendant(file, new File(parentFiles[i]));
+ }
- return accept;
+ return accept;
}
}
- private boolean isWindowsServiceEnabled()
- {
- if (isWindowsServiceEnabled == null)
- {
+ private boolean isWindowsServiceEnabled() {
+ if (isWindowsServiceEnabled == null) {
if (ConfigureWindowsService.serviceState(null, null) ==
- ConfigureWindowsService.SERVICE_STATE_ENABLED)
- {
+ ConfigureWindowsService.SERVICE_STATE_ENABLED) {
isWindowsServiceEnabled = Boolean.TRUE;
- }
- else
- {
+ } else {
isWindowsServiceEnabled = Boolean.FALSE;
}
}
@@ -1081,25 +1195,25 @@
/**
* This methods disables this server as a Windows service.
+ *
* @throws ApplicationException if something goes wrong.
*/
- protected void disableWindowsService() throws ApplicationException
- {
+ protected void disableWindowsService() throws ApplicationException {
notifyListeners(getFormattedProgress(
- getMsg("progress-disabling-windows-service")));
+ getMsg("progress-disabling-windows-service")));
int code = ConfigureWindowsService.disableService(System.out, System.err);
String errorMessage = getMsg("error-disabling-windows-service");
- switch (code)
- {
+ switch (code) {
case ConfigureWindowsService.SERVICE_DISABLE_SUCCESS:
- break;
+ break;
case ConfigureWindowsService.SERVICE_ALREADY_DISABLED:
- break;
+ break;
default:
- throw new ApplicationException(
- ApplicationException.Type.WINDOWS_SERVICE_ERROR, errorMessage, null);
+ throw new ApplicationException(
+ ApplicationException.Type.WINDOWS_SERVICE_ERROR,
+ errorMessage, null);
}
}
@@ -1107,22 +1221,18 @@
* This class is used to notify the UninstallProgressUpdateListeners of events
* that are written to the standard error. These classes just create an
* ErrorPrintStream and then they do a call to System.err with it.
- *
+ * <p/>
* The class just reads what is written to the standard error, obtains an
* formatted representation of it and then notifies the
* UninstallProgressUpdateListeners with the formatted messages.
- *
*/
- protected class ErrorPrintStream extends PrintStream
- {
+ protected class ErrorPrintStream extends PrintStream {
private boolean isFirstLine;
/**
* Default constructor.
- *
*/
- public ErrorPrintStream()
- {
+ public ErrorPrintStream() {
super(new ByteArrayOutputStream(), true);
isFirstLine = true;
}
@@ -1130,13 +1240,10 @@
/**
* {@inheritDoc}
*/
- public void println(String msg)
- {
- if (isFirstLine)
- {
+ public void println(String msg) {
+ if (isFirstLine) {
notifyListeners(getFormattedLogError(msg));
- } else
- {
+ } else {
notifyListeners(formatter.getLineBreak() + getFormattedLogError(msg));
}
isFirstLine = false;
@@ -1145,17 +1252,14 @@
/**
* {@inheritDoc}
*/
- public void write(byte[] b, int off, int len)
- {
- if (b == null)
- {
+ public void write(byte[] b, int off, int len) {
+ if (b == null) {
throw new NullPointerException("b is null");
}
- if (off + len > b.length)
- {
+ if (off + len > b.length) {
throw new IndexOutOfBoundsException(
- "len + off are bigger than the length of the byte array");
+ "len + off are bigger than the length of the byte array");
}
println(new String(b, off, len));
}
@@ -1165,22 +1269,18 @@
* This class is used to notify the UninstallProgressUpdateListeners of events
* that are written to the standard output. These classes just create an
* OutputPrintStream and then they do a call to System.out with it.
- *
+ * <p/>
* The class just reads what is written to the standard output, obtains an
* formatted representation of it and then notifies the
* UninstallProgressUpdateListeners with the formatted messages.
- *
*/
- protected class OutputPrintStream extends PrintStream
- {
+ protected class OutputPrintStream extends PrintStream {
private boolean isFirstLine;
/**
* Default constructor.
- *
*/
- public OutputPrintStream()
- {
+ public OutputPrintStream() {
super(new ByteArrayOutputStream(), true);
isFirstLine = true;
}
@@ -1188,13 +1288,10 @@
/**
* {@inheritDoc}
*/
- public void println(String msg)
- {
- if (isFirstLine)
- {
+ public void println(String msg) {
+ if (isFirstLine) {
notifyListeners(getFormattedLog(msg));
- } else
- {
+ } else {
notifyListeners(formatter.getLineBreak() + getFormattedLog(msg));
}
isFirstLine = false;
@@ -1203,17 +1300,14 @@
/**
* {@inheritDoc}
*/
- public void write(byte[] b, int off, int len)
- {
- if (b == null)
- {
+ public void write(byte[] b, int off, int len) {
+ if (b == null) {
throw new NullPointerException("b is null");
}
- if (off + len > b.length)
- {
+ if (off + len > b.length) {
throw new IndexOutOfBoundsException(
- "len + off are bigger than the length of the byte array");
+ "len + off are bigger than the length of the byte array");
}
println(new String(b, off, len));
@@ -1221,7 +1315,7 @@
}
private UninstallUserData getUninstallUserData() {
- return (UninstallUserData)getUserData();
+ return (UninstallUserData) getUserData();
}
}
--
Gitblit v1.10.0