| | |
| | | */ |
| | | package org.opends.quicksetup.installer; |
| | | |
| | | import java.io.BufferedWriter; |
| | | import java.io.File; |
| | | import java.io.FileWriter; |
| | | import java.io.IOException; |
| | | import java.net.URI; |
| | | import java.util.*; |
| | |
| | | protected Set<InstallProgressStep> |
| | | completedProgress = new HashSet<InstallProgressStep>(); |
| | | |
| | | private List<WizardStep> lstSteps = new ArrayList<WizardStep>(); |
| | | private final List<WizardStep> lstSteps = new ArrayList<WizardStep>(); |
| | | |
| | | private final HashSet<WizardStep> SUBSTEPS = new HashSet<WizardStep>(); |
| | | { |
| | |
| | | SUBSTEPS.add(Step.REMOTE_REPLICATION_PORTS); |
| | | } |
| | | |
| | | private HashMap<WizardStep, WizardStep> hmPreviousSteps = |
| | | private final HashMap<WizardStep, WizardStep> hmPreviousSteps = |
| | | new HashMap<WizardStep, WizardStep>(); |
| | | |
| | | private char[] selfSignedCertPw = null; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isCancellable() { |
| | | return true; |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public UserData createUserData() { |
| | | UserData ud = new UserData(); |
| | | ud.setServerLocation(getDefaultServerLocation()); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void forceToDisplay() { |
| | | forceToDisplaySetup = true; |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean canGoBack(WizardStep step) { |
| | | return step != WELCOME && |
| | | step != PROGRESS && |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean canGoForward(WizardStep step) { |
| | | return step != REVIEW && |
| | | step != PROGRESS && |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean canFinish(WizardStep step) { |
| | | return step == REVIEW; |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean canQuit(WizardStep step) { |
| | | return step != PROGRESS && |
| | | step != FINISHED; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isSubStep(WizardStep step) |
| | | { |
| | | return SUBSTEPS.contains(step); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isVisible(WizardStep step, UserData userData) |
| | | { |
| | | boolean isVisible; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isVisible(WizardStep step, QuickSetup qs) |
| | | { |
| | | return isVisible(step, getUserData()); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean finishClicked(final WizardStep cStep, final QuickSetup qs) { |
| | | if (cStep == Step.REVIEW) { |
| | | updateUserDataForReviewPanel(qs); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void nextClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == PROGRESS) { |
| | | throw new IllegalStateException( |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void closeClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == PROGRESS) { |
| | | if (isFinished() |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public boolean isFinished() |
| | | { |
| | | return getCurrentProgressStep() == InstallProgressStep.FINISHED_SUCCESSFULLY |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void cancel() { |
| | | setCurrentProgressStep(InstallProgressStep.WAITING_TO_CANCEL); |
| | | notifyListeners(null); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void quitClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == FINISHED) |
| | | { |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public ButtonName getInitialFocusButtonName() { |
| | | ButtonName name = null; |
| | | if (!installStatus.isInstalled() || forceToDisplaySetup) |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public JPanel createFramePanel(QuickSetupDialog dlg) { |
| | | JPanel p; |
| | | javaVersionCheckFailed = true; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public Set<? extends WizardStep> getWizardSteps() { |
| | | return Collections.unmodifiableSet(new HashSet<WizardStep>(lstSteps)); |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public QuickSetupStepPanel createWizardStepPanel(WizardStep step) { |
| | | QuickSetupStepPanel p = null; |
| | | if (step == WELCOME) { |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void windowClosing(QuickSetupDialog dlg, WindowEvent evt) { |
| | | |
| | | if (installStatus.isInstalled() && forceToDisplaySetup) { |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public Message getCloseButtonToolTip() { |
| | | return INFO_CLOSE_BUTTON_INSTALL_TOOLTIP.get(); |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public Message getQuitButtonToolTip() { |
| | | return INFO_QUIT_BUTTON_INSTALL_TOOLTIP.get(); |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public Message getFinishButtonToolTip() { |
| | | return INFO_FINISH_BUTTON_INSTALL_TOOLTIP.get(); |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public int getExtraDialogHeight() { |
| | | return UIFactory.EXTRA_DIALOG_HEIGHT; |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void previousClicked(WizardStep cStep, QuickSetup qs) { |
| | | if (cStep == WELCOME) { |
| | | throw new IllegalStateException( |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public Message getFrameTitle() { |
| | | return Utils.getCustomizedObject("INFO_FRAME_INSTALL_TITLE", |
| | | INFO_FRAME_INSTALL_TITLE.get(DynamicConstants.PRODUCT_NAME), |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public void setWizardDialogState(QuickSetupDialog dlg, |
| | | UserData userData, |
| | | WizardStep step) { |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public ProgressStep getCurrentProgressStep() |
| | | { |
| | | return currentProgressStep; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public WizardStep getFirstWizardStep() { |
| | | return WELCOME; |
| | | } |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public WizardStep getNextWizardStep(WizardStep step) { |
| | | WizardStep next = null; |
| | | if (step == Step.REPLICATION_OPTIONS) |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public LinkedHashSet<WizardStep> getOrderedSteps() |
| | | { |
| | | LinkedHashSet<WizardStep> orderedSteps = new LinkedHashSet<WizardStep>(); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public WizardStep getPreviousWizardStep(WizardStep step) { |
| | | // Try with the steps calculated in method getNextWizardStep. |
| | | WizardStep prev = hmPreviousSteps.get(step); |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public WizardStep getFinishedStep() { |
| | | return Step.FINISHED; |
| | | } |
| | |
| | | |
| | | writeOpenDSJavaHome(); |
| | | |
| | | writeHostName(); |
| | | |
| | | if (Utils.isWebStart()) |
| | | { |
| | | String installDir = getUserData().getServerLocation(); |
| | |
| | | setNotifyListeners(false); |
| | | InvokeThread thread = new InvokeThread() |
| | | { |
| | | @Override |
| | | public void run() |
| | | { |
| | | int result = -1; |
| | |
| | | } |
| | | isOver = true; |
| | | } |
| | | @Override |
| | | public void abort() |
| | | { |
| | | // TODO: implement the abort |
| | |
| | | |
| | | InvokeThread thread = new InvokeThread() |
| | | { |
| | | @Override |
| | | public void run() |
| | | { |
| | | try |
| | |
| | | } |
| | | isOver = true; |
| | | } |
| | | @Override |
| | | public void abort() |
| | | { |
| | | // TODO: implement the abort |
| | |
| | | |
| | | InvokeThread thread = new InvokeThread() |
| | | { |
| | | @Override |
| | | public void run() |
| | | { |
| | | try |
| | |
| | | } |
| | | isOver = true; |
| | | } |
| | | @Override |
| | | public void abort() |
| | | { |
| | | // TODO: implement the abort |
| | |
| | | |
| | | InvokeThread thread = new InvokeThread() |
| | | { |
| | | @Override |
| | | public void run() |
| | | { |
| | | try |
| | |
| | | } |
| | | isOver = true; |
| | | } |
| | | @Override |
| | | public void abort() |
| | | { |
| | | // TODO: implement the abort |
| | |
| | | * |
| | | * @throws ApplicationException thrown if <code>canceled</code> |
| | | */ |
| | | @Override |
| | | public void checkAbort() throws ApplicationException { |
| | | if (canceled) { |
| | | setCurrentProgressStep(InstallProgressStep.CANCELING); |
| | |
| | | } |
| | | |
| | | /** |
| | | * Writes the host name to a file that will be used by the server to generate |
| | | * a self-signed certificate. |
| | | */ |
| | | private void writeHostName() |
| | | { |
| | | BufferedWriter writer = null; |
| | | try |
| | | { |
| | | writer = new BufferedWriter(new FileWriter(getHostNameFile(), false)); |
| | | writer.append(getUserData().getHostName()); |
| | | } |
| | | catch (IOException ioe) |
| | | { |
| | | LOG.log(Level.WARNING, "Error writing host name file: "+ioe, ioe); |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | if (writer != null) |
| | | { |
| | | writer.close(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Returns the file path where the host name is to be written. |
| | | * @return the file path where the host name is to be written. |
| | | */ |
| | | private String getHostNameFile() |
| | | { |
| | | String file = Utils.getPath( |
| | | getInstallation().getRootDirectory().getAbsolutePath(), |
| | | SetupUtils.HOST_NAME_FILE); |
| | | return file; |
| | | } |
| | | |
| | | /** |
| | | * Writes the java home that we are using for the setup in a file. |
| | | * This way we can use this java home even if the user has not set |
| | | * OPENDS_JAVA_HOME when running the different scripts. |
| | | * |
| | | */ |
| | | protected void writeOpenDSJavaHome() |
| | | private void writeOpenDSJavaHome() |
| | | { |
| | | try |
| | | { |
| | |
| | | * valid. |
| | | * |
| | | */ |
| | | @Override |
| | | public void updateUserData(WizardStep cStep, QuickSetup qs) |
| | | throws UserDataException |
| | | { |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | protected void applicationPrintStreamReceived(String message) |
| | | { |
| | | InstallerHelper helper = new InstallerHelper(); |
| | |
| | | /** |
| | | * Runnable implementation. |
| | | */ |
| | | @Override |
| | | public abstract void run(); |
| | | |
| | | /** |