You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/07/04 14:08:37 UTC

svn commit: r1800791 - in /tomcat/trunk: res/tomcat.nsi webapps/docs/changelog.xml webapps/docs/setup.xml

Author: markt
Date: Tue Jul  4 14:08:37 2017
New Revision: 1800791

URL: http://svn.apache.org/viewvc?rev=1800791&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=52791
Add the ability to set the defaults used by the Windows installer from a configuration file.
Patch provided by Sandra Madden.

Modified:
    tomcat/trunk/res/tomcat.nsi
    tomcat/trunk/webapps/docs/changelog.xml
    tomcat/trunk/webapps/docs/setup.xml

Modified: tomcat/trunk/res/tomcat.nsi
URL: http://svn.apache.org/viewvc/tomcat/trunk/res/tomcat.nsi?rev=1800791&r1=1800790&r2=1800791&view=diff
==============================================================================
--- tomcat/trunk/res/tomcat.nsi (original)
+++ tomcat/trunk/res/tomcat.nsi Tue Jul  4 14:08:37 2017
@@ -43,6 +43,7 @@
 !include "StrFunc.nsh"
 !include "LogicLib.nsh"
 !include "FileFunc.nsh"
+!include "TextFunc.nsh"
 ${StrRep}
 
 Var JavaHome
@@ -359,6 +360,26 @@ Section -post
 
 SectionEnd
 
+!define ReadFromConfigIni "!insertmacro ReadFromConfigIni"
+!macro ReadFromConfigIni Return_Variable Key_Name Config_File
+  Push "${Config_File}"
+  Push "${Return_Variable}"
+  Push "${Key_Name}"
+  Call ReadFromConfigIni
+  IfErrors +2
+   StrCpy ${Return_Variable} $1
+!macroend
+
+Function ReadFromConfigIni
+  ClearErrors
+                             ; Stack: <Key_Name> <Return_Variable> <Config_File>
+  Pop $0                     ; <Key_Name> Stack: <Return_Variable> <Config_File>
+  Pop $1                     ; <Return_Variable> Stack: <Config_File>
+  Pop $2                     ; <Config_File> Stack: -empty-
+
+  ${ConfigRead} $2 '$0=' $1        ; <Config_File> <Key_Name> <Return_Variable>
+FunctionEnd
+
 Function .onInit
   !ifdef UNINSTALLONLY
     ; If UNINSTALLONLY is defined, then we aren't supposed to do anything except write out
@@ -375,6 +396,7 @@ Function .onInit
   ${IfNot} ${Errors}
     MessageBox MB_OK|MB_ICONINFORMATION 'Available options:$\r$\n\
                /S - Silent install.$\r$\n\
+               /C=config.ini - specify full path of config file to override default values.$\r$\n\
                /D=INSTDIR - Specify installation directory.'
     Abort
   ${EndIf}
@@ -397,6 +419,27 @@ Function .onInit
   StrCpy $TomcatAdminUsername ""
   StrCpy $TomcatAdminPassword ""
   StrCpy $TomcatAdminRoles ""
+
+  ;override default values in case config file was passed in
+  ${GetOptions} "$R0" "/C=" $R2
+  ${IfNot} ${Errors}
+     ${ReadFromConfigIni} $JavaHome "JavaHome" $R2
+     ${ReadFromConfigIni} $TomcatPortShutdown "TomcatPortShutdown" $R2
+     ${ReadFromConfigIni} $TomcatPortHttp "TomcatPortHttp" $R2
+     ${ReadFromConfigIni} $TomcatPortAjp "TomcatPortAjp" $R2
+     ${ReadFromConfigIni} $TomcatMenuEntriesEnable "TomcatMenuEntriesEnable" $R2
+     ${ReadFromConfigIni} $TomcatShortcutAllUsers "TomcatShortcutAllUsers" $R2
+     ${ReadFromConfigIni} $TomcatServiceDefaultName "TomcatServiceDefaultName" $R2
+     ${ReadFromConfigIni} $TomcatServiceName "TomcatServiceName" $R2
+     ${ReadFromConfigIni} $TomcatServiceFileName "TomcatServiceFileName" $R2
+     ${ReadFromConfigIni} $TomcatServiceManagerFileName "TomcatServiceManagerFileName" $R2
+     ${ReadFromConfigIni} $TomcatAdminEnable "TomcatAdminEnable" $R2
+     ${ReadFromConfigIni} $TomcatAdminUsername "TomcatAdminUsername" $R2
+     ${ReadFromConfigIni} $TomcatAdminPassword "TomcatAdminPassword" $R2
+     ${ReadFromConfigIni} $TomcatAdminRoles "TomcatAdminRoles" $R2
+  ${EndIf}
+  ClearErrors
+
 FunctionEnd
 
 Function pageChooseJVM
@@ -880,7 +923,7 @@ Function findJVMPath
   IfFileExists "$2" FoundJvmDll
 
   ClearErrors
-  ;Step tree: Read defaults from registry
+  ;Step three: Read defaults from registry
 
   ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" "RuntimeLib"

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1800791&r1=1800790&r2=1800791&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Jul  4 14:08:37 2017
@@ -45,6 +45,15 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 9.0.0.M24 (markt)" rtext="in development">
+  <subsection name="Other">
+    <changelog>
+      <add>
+        <bug>52791</bug>: Add the ability to set the defaults used by the
+        Windows installer from a configuration file. Patch provided by Sandra
+        Madden. (markt)
+      </add>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 9.0.0.M23 (markt)" rtext="release in progress">
   <subsection name="Catalina">

Modified: tomcat/trunk/webapps/docs/setup.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/setup.xml?rev=1800791&r1=1800790&r2=1800791&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/setup.xml (original)
+++ tomcat/trunk/webapps/docs/setup.xml Tue Jul  4 14:08:37 2017
@@ -71,6 +71,31 @@
             will not be any tray icon present when Tomcat is running. Note that
             when choosing to run Tomcat at the end of installation, the tray
             icon will be used even if Tomcat was installed as a service.</li>
+        <li><strong>Defaults</strong>: The defaults used by the installer may be
+            overridden by use of the <code>/C=&lt;config file&gt;</code> command
+            line argument. The configuration file uses the format
+            <code>name=value</code> with each pair on a separate line. The names
+            of the available configuration options are:
+            <ul>
+            <li>JavaHome</li>
+            <li>TomcatPortShutdown</li>
+            <li>TomcatPortHttp</li>
+            <li>TomcatPortAjp</li>
+            <li>TomcatMenuEntriesEnable</li>
+            <li>TomcatShortcutAllUsers</li>
+            <li>TomcatServiceDefaultName</li>
+            <li>TomcatServiceName</li>
+            <li>TomcatServiceFileName</li>
+            <li>TomcatServiceManagerFileName</li>
+            <li>TomcatAdminEnable</li>
+            <li>TomcatAdminUsername</li>
+            <li>TomcatAdminPassword</li>
+            <li>TomcatAdminRoles</li>
+            </ul>
+            By using <code>/C=...</code> along with <code>/S</code> and
+            <code>/D=</code> it is possible to perform fully configured
+            unattended installs of Apache Tomact.
+        </li>
         <li>Refer to the
             <a href="windows-service-howto.html">Windows Service HOW-TO</a>
             for information on how to manage Tomcat as a Windows service.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org