Index: C:/workspace/jython/installer/src/java/org/python/util/install/Installation.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/Installation.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/Installation.java (working copy) @@ -57,19 +57,10 @@ return _textConstants.getString(key); } - protected static String getText(String key, String parameter0) { - String parameters[] = new String[1]; - parameters[0] = parameter0; - return MessageFormat.format(_textConstants.getString(key), parameters); + protected static String getText(String key, String... parameters) { + return MessageFormat.format(_textConstants.getString(key), (Object[])parameters); } - protected static String getText(String key, String parameter0, String parameter1) { - String parameters[] = new String[2]; - parameters[0] = parameter0; - parameters[1] = parameter1; - return MessageFormat.format(_textConstants.getString(key), parameters); - } - protected static void setLanguage(Locale locale) { _textConstants = ResourceBundle.getBundle(RESOURCE_CLASS, locale); } Index: C:/workspace/jython/installer/src/java/org/python/util/install/InstallerCommandLine.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/InstallerCommandLine.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/InstallerCommandLine.java (working copy) @@ -251,9 +251,7 @@ } } formatter.printHelp(syntax, HEADER, _options, FOOTER, true); - String exampleSyntax[] = new String[1]; - exampleSyntax[0] = syntax; - String examples = MessageFormat.format(EXAMPLES, exampleSyntax); + String examples = MessageFormat.format(EXAMPLES, syntax); System.out.println(examples); } Index: C:/workspace/jython/installer/src/java/org/python/util/install/driver/InstallationDriver.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/driver/InstallationDriver.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/driver/InstallationDriver.java (working copy) @@ -130,7 +130,7 @@ * @throws DriverException */ private void buildSilentTests() throws IOException, DriverException { - List silentTests = new ArrayList(50); + List silentTests = new ArrayList(50); SilentAutotest test1 = new SilentAutotest(getOriginalCommandLine()); String[] arguments = new String[] { "-s" }; @@ -156,9 +156,9 @@ // build array int size = silentTests.size(); _silentTests = new SilentAutotest[size]; - Iterator silentIterator = silentTests.iterator(); + Iterator silentIterator = silentTests.iterator(); for (int i = 0; i < size; i++) { - _silentTests[i] = (SilentAutotest) silentIterator.next(); + _silentTests[i] = silentIterator.next(); } } @@ -169,7 +169,7 @@ * @throws DriverException */ private void buildConsoleTests() throws IOException, DriverException { - List consoleTests = new ArrayList(50); + List consoleTests = new ArrayList(5); final String[] arguments; if (getOriginalCommandLine().hasVerboseOption()) { arguments = new String[] { "-c", "-v" }; @@ -244,13 +244,36 @@ test3.addAnswer("n"); // no readme test3.setVerifier(new StandaloneVerifier()); consoleTests.add(test3); - + + // test for bug 1783960 + ConsoleAutotest test4 = new ConsoleAutotest(getOriginalCommandLine()); + test4.setCommandLineArgs(arguments); + test4.addAnswer("e"); // language + test4.addAnswer("n"); // no read of license + test4.addAnswer("y"); // accept license + test4.addAnswer("2"); // type: standard + test4.addAnswer("n"); // no includes + test4.addAnswer("y"); // exclude + test4.addAnswer("n"); // no further excludes + test4.addAnswer(test4.getTargetDir().getAbsolutePath()); // target directory + if (test4.hasJavaHomeDeviation()) { + test4.addAnswer(test4.getJavaHome().getAbsolutePath()); // different jre + } else { + test4.addAnswer("=="); // current jre + } + test4.addAnswer(""); // simple enter for java version + test4.addAnswer(""); // simple enter for os version + test4.addAnswer("y"); // confirm copying + test4.addAnswer("n"); // no readme + test4.setVerifier(new NormalVerifier()); + consoleTests.add(test4); + // build array int size = consoleTests.size(); _consoleTests = new ConsoleAutotest[size]; - Iterator consoleIterator = consoleTests.iterator(); + Iterator consoleIterator = consoleTests.iterator(); for (int i = 0; i < size; i++) { - _consoleTests[i] = (ConsoleAutotest) consoleIterator.next(); + _consoleTests[i] = consoleIterator.next(); } } @@ -261,7 +284,7 @@ * @throws DriverException */ private void buildGuiTests() throws IOException, DriverException { - List guiTests = new ArrayList(50); + List guiTests = new ArrayList(50); if (Installation.isGuiAllowed()) { GuiAutotest guiTest1 = new GuiAutotest(getOriginalCommandLine()); @@ -342,9 +365,9 @@ // build array int size = guiTests.size(); _guiTests = new GuiAutotest[size]; - Iterator guiIterator = guiTests.iterator(); + Iterator guiIterator = guiTests.iterator(); for (int i = 0; i < size; i++) { - _guiTests[i] = (GuiAutotest) guiIterator.next(); + _guiTests[i] = guiIterator.next(); } } Index: C:/workspace/jython/installer/src/java/org/python/util/install/AbstractWizard.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/AbstractWizard.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/AbstractWizard.java (working copy) @@ -364,14 +364,17 @@ _header.setVisible(visible); } - public void show() { - fireStartedEvent(); - if (_pages.size() > 0) { - _activePage = (AbstractWizardPage) _pages.get(0); - showActivePage(); - } - super.show(); - } + @Override + public void setVisible(boolean visible) { + if (visible) { + fireStartedEvent(); + if (_pages.size() > 0) { + _activePage = (AbstractWizardPage) _pages.get(0); + showActivePage(); + } + } + super.setVisible(visible); + } private void showActivePage() { if (_activePage == null) Index: C:/workspace/jython/installer/src/java/org/python/util/install/FrameInstaller.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/FrameInstaller.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/FrameInstaller.java (working copy) @@ -49,7 +49,7 @@ } }); wizard.addWizardListener(new SimpleWizardListener()); - wizard.show(); + wizard.setVisible(true); } protected static void setProperty(String key, String value) { Index: C:/workspace/jython/installer/src/java/org/python/util/install/ConsoleInstaller.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/ConsoleInstaller.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/ConsoleInstaller.java (working copy) @@ -78,7 +78,7 @@ return question(question, null, answerRequired); } - private String question(String question, List answers) { + private String question(String question, List answers) { return question(question, answers, true); } @@ -88,15 +88,15 @@ * @param answers Possible answers (may be null) * @return (chosen) answer */ - private String question(String question, List answers, boolean answerRequired) { + private String question(String question, List answers, boolean answerRequired) { try { if (answers != null && answers.size() > 0) { question = question + " " + _BEGIN_ANSWERS; - Iterator answersAsIterator = answers.iterator(); + Iterator answersAsIterator = answers.iterator(); while (answersAsIterator.hasNext()) { if (!question.endsWith(_BEGIN_ANSWERS)) question = question + "/"; - question = question + (String) answersAsIterator.next(); + question = question + answersAsIterator.next(); } question = question + _END_ANSWERS; } @@ -108,9 +108,9 @@ System.out.print(question); // intended print, not println (!) answer = readLine(); if (answers != null && answers.size() > 0) { - Iterator answersAsIterator = answers.iterator(); + Iterator answersAsIterator = answers.iterator(); while (answersAsIterator.hasNext()) { - if (answer.equalsIgnoreCase((String) answersAsIterator.next())) { + if (answer.equalsIgnoreCase(answersAsIterator.next())) { match = true; } } @@ -157,13 +157,13 @@ } private void selectLanguage() { - List availableLanguages = new ArrayList(2); + List availableLanguages = new ArrayList(2); availableLanguages.add(getText(C_ENGLISH)); availableLanguages.add(getText(C_GERMAN)); // 1 == German - List answers = new ArrayList(availableLanguages.size()); + List answers = new ArrayList(availableLanguages.size()); String languages = ""; - for (Iterator iterator = availableLanguages.iterator(); iterator.hasNext();) { - String language = (String) iterator.next(); + for (Iterator iterator = availableLanguages.iterator(); iterator.hasNext();) { + String language = iterator.next(); languages = languages + language + ", "; answers.add(language.substring(0, 1).toLowerCase()); } @@ -186,12 +186,7 @@ message(" " + Installation.STANDARD + ". " + getText(C_STANDARD)); message(" " + Installation.MINIMUM + ". " + getText(C_MINIMUM)); message(" " + Installation.STANDALONE + ". " + getText(C_STANDALONE)); - List answers = new ArrayList(4); - answers.add(Installation.ALL); - answers.add(Installation.STANDARD); - answers.add(Installation.MINIMUM); - answers.add(Installation.STANDALONE); - String answer = question(getText(C_SELECT_INSTALL_TYPE), answers); + String answer = question(getText(C_SELECT_INSTALL_TYPE), getTypeAnswers()); if (Installation.ALL.equals(answer)) { installationType.setAll(); } else if (Installation.STANDARD.equals(answer)) { @@ -206,14 +201,8 @@ if (!installationType.isAll()) { answer = question(getText(C_INCLUDE), getYNAnswers()); if (yes.equals(answer)) { - answers = new ArrayList(5); - answers.add(InstallerCommandLine.INEXCLUDE_LIBRARY_MODULES); - answers.add(InstallerCommandLine.INEXCLUDE_DEMOS_AND_EXAMPLES); - answers.add(InstallerCommandLine.INEXCLUDE_DOCUMENTATION); - answers.add(InstallerCommandLine.INEXCLUDE_SOURCES); - answers.add(no); do { - answer = question(getText(C_INEXCLUDE_PARTS, no), answers); + answer = question(getText(C_INEXCLUDE_PARTS, no), getInExcludeAnswers()); if (InstallerCommandLine.INEXCLUDE_LIBRARY_MODULES.equals(answer)) { installationType.addLibraryModules(); } else if (InstallerCommandLine.INEXCLUDE_DEMOS_AND_EXAMPLES.equals(answer)) { @@ -234,7 +223,7 @@ answer = question(getText(C_EXCLUDE), getYNAnswers()); if (yes.equals(answer)) { do { - answer = question(getText(C_INEXCLUDE_PARTS, no), answers); + answer = question(getText(C_INEXCLUDE_PARTS, no), getInExcludeAnswers()); if (InstallerCommandLine.INEXCLUDE_LIBRARY_MODULES.equals(answer)) { installationType.removeLibraryModules(); } else if (InstallerCommandLine.INEXCLUDE_DEMOS_AND_EXAMPLES.equals(answer)) { @@ -490,13 +479,32 @@ } } - private List getYNAnswers() { - List answers = new ArrayList(2); + private List getTypeAnswers() { + List answers = new ArrayList(4); + answers.add(Installation.ALL); + answers.add(Installation.STANDARD); + answers.add(Installation.MINIMUM); + answers.add(Installation.STANDALONE); + return answers; + } + + private List getYNAnswers() { + List answers = new ArrayList(2); answers.add(getText(C_YES)); answers.add(getText(C_NO)); return answers; } + private List getInExcludeAnswers() { + List answers = new ArrayList(5); + answers.add(InstallerCommandLine.INEXCLUDE_LIBRARY_MODULES); + answers.add(InstallerCommandLine.INEXCLUDE_DEMOS_AND_EXAMPLES); + answers.add(InstallerCommandLine.INEXCLUDE_DOCUMENTATION); + answers.add(InstallerCommandLine.INEXCLUDE_SOURCES); + answers.add(getText(C_NO)); + return answers; + } + private void progressMessage(int percentage) { message(" " + percentage + " %"); } Index: C:/workspace/jython/installer/src/java/org/python/util/install/StartScriptGenerator.java =================================================================== --- C:/workspace/jython/installer/src/java/org/python/util/install/StartScriptGenerator.java (revision 3456) +++ C:/workspace/jython/installer/src/java/org/python/util/install/StartScriptGenerator.java (working copy) @@ -140,7 +140,7 @@ parameters[1] = System.getProperty("user.name"); parameters[2] = _javaHome.getCanonicalPath(); parameters[3] = _targetDirectory.getCanonicalPath(); - return MessageFormat.format(template, parameters); + return MessageFormat.format(template, (Object[])parameters); } /**