yoavs       2005/08/02 11:12:06

  Modified:    .        tomcat.nsi
               webapps/docs changelog.xml
  Log:
  Bugzilla 33261: http://issues.apache.org/bugzilla/show_bug.cgi?id=33261
  
  Revision  Changes    Path
  1.78      +683 -651  jakarta-tomcat-5/tomcat.nsi
  
  Index: tomcat.nsi
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-5/tomcat.nsi,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- tomcat.nsi        29 Jul 2005 15:35:48 -0000      1.77
  +++ tomcat.nsi        2 Aug 2005 18:12:05 -0000       1.78
  @@ -1,651 +1,683 @@
  -
  -; Tomcat script for Nullsoft Installer
  -; $Id$
  -
  -  ;Compression options
  -  CRCCheck on
  -  SetCompress force
  -  SetCompressor lzma
  -  SetDatablockOptimize on
  -
  -  Name "Apache Tomcat"
  -
  -  ;Product information
  -  VIAddVersionKey ProductName "Apache Tomcat"
  -  VIAddVersionKey CompanyName "Apache Software Foundation"
  -  VIAddVersionKey LegalCopyright "Copyright (c) 1999-2004 The Apache 
Software Foundation"
  -  VIAddVersionKey FileDescription "Apache Tomcat Installer"
  -  VIAddVersionKey FileVersion "2.0"
  -  VIAddVersionKey ProductVersion "@VERSION@"
  -  VIAddVersionKey Comments "jakarta.apache.org/tomcat"
  -  VIAddVersionKey InternalName "[EMAIL PROTECTED]@.exe"
  -  VIProductVersion @VERSION_NUMBER@
  -
  -!include "MUI.nsh"
  -!include "StrFunc.nsh"
  -${StrRep}
  -  Var "JavaHome"
  -
  -
  -
  -;--------------------------------
  -;Configuration
  -
  -  !define MUI_HEADERIMAGE
  -  !define MUI_HEADERIMAGE_RIGHT
  -  !define MUI_HEADERIMAGE_BITMAP header.bmp
  -  !define MUI_WELCOMEFINISHPAGE_BITMAP side_left.bmp 
  -  !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\webapps\ROOT\RELEASE-NOTES.txt"
  -  !define MUI_FINISHPAGE_RUN $INSTDIR\bin\tomcat5w.exe
  -  !define MUI_FINISHPAGE_RUN_PARAMETERS //MR//Tomcat5
  -  !define MUI_FINISHPAGE_NOREBOOTSUPPORT
  -
  -  !define MUI_ABORTWARNING
  -
  -  !define TEMP1 $R0
  -  !define TEMP2 $R1
  -
  -  !define MUI_ICON tomcat.ico
  -  !define MUI_UNICON tomcat.ico
  -
  -  ;General
  -  OutFile tomcat-installer.exe
  -
  -  ;Install Options pages
  -  LangString TEXT_JVM_TITLE ${LANG_ENGLISH} "Java Virtual Machine"
  -  LangString TEXT_JVM_SUBTITLE ${LANG_ENGLISH} "Java Virtual Machine path 
selection."
  -  LangString TEXT_JVM_PAGETITLE ${LANG_ENGLISH} ": Java Virtual Machine path 
selection"
  -
  -  LangString TEXT_CONF_TITLE ${LANG_ENGLISH} "Configuration"
  -  LangString TEXT_CONF_SUBTITLE ${LANG_ENGLISH} "Tomcat basic configuration."
  -  LangString TEXT_CONF_PAGETITLE ${LANG_ENGLISH} ": Configuration Options"
  -
  -  ;Install Page order
  -  !insertmacro MUI_PAGE_WELCOME
  -  !insertmacro MUI_PAGE_LICENSE INSTALLLICENSE
  -  !insertmacro MUI_PAGE_COMPONENTS
  -  !insertmacro MUI_PAGE_DIRECTORY
  -  Page custom SetConfiguration Void "$(TEXT_CONF_PAGETITLE)"
  -  Page custom SetChooseJVM Void "$(TEXT_JVM_PAGETITLE)"
  -  !insertmacro MUI_PAGE_INSTFILES
  -  !insertmacro MUI_PAGE_FINISH
  -
  -  ;Uninstall Page order
  -  !insertmacro MUI_UNPAGE_CONFIRM
  -  !insertmacro MUI_UNPAGE_INSTFILES
  -
  -  ;License dialog
  -  LicenseData License.rtf
  -
  -  ;Component-selection page
  -    ;Descriptions
  -    LangString DESC_SecTomcat ${LANG_ENGLISH} "Install the Tomcat Servlet 
container."
  -    LangString DESC_SecTomcatCore ${LANG_ENGLISH} "Install the Tomcat 
Servlet container core."
  -    LangString DESC_SecTomcatService ${LANG_ENGLISH} "Automatically start 
Tomcat when the computer is started. This requires Windows NT 4.0, Windows 2000 
or Windows XP."
  -;    LangString DESC_SecTomcatSource ${LANG_ENGLISH} "Install the Tomcat 
source code."
  -    LangString DESC_SecMenu ${LANG_ENGLISH} "Create a Start Menu program 
group for Tomcat."
  -    LangString DESC_SecDocs ${LANG_ENGLISH} "Install the Tomcat 
documentation bundle. This include documentation on the servlet container and 
its configuration options, on the Jasper JSP page compiler, as well as on the 
native webserver connectors."
  -    LangString DESC_SecExamples ${LANG_ENGLISH} "Installs some examples web 
applications."
  -    LangString DESC_SecAdmin ${LANG_ENGLISH} "Installs the administration 
web application.";
  -;    LangString DESC_SecWebapps ${LANG_ENGLISH} "Installs other utility web 
applications (WebDAV, balancer, etc)."
  -;    LangString DESC_SecCompat ${LANG_ENGLISH} "Installs Java2™ 
compatibility package. This release of Apache Tomcat was packaged to run on 
J2SE 5.0 or later. It can be run on earlier JVMs by installng this package."
  -
  -  ;Language
  -  !insertmacro MUI_LANGUAGE English
  -
  -  ;Folder-select dialog
  -  InstallDir "$PROGRAMFILES\Apache Software Foundation\Tomcat 5.5"
  -
  -  ;Install types
  -  InstType Normal
  -  InstType Minimum
  -  InstType Full
  -
  -  ; Main registry key
  -  InstallDirRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" ""
  -
  -  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
  -  ReserveFile "jvm.ini"
  -  ReserveFile "config.ini"
  -
  -;--------------------------------
  -;Installer Sections
  -
  -SubSection "Tomcat" SecTomcat
  -
  -Section "Core" SecTomcatCore
  -
  -  SectionIn 1 2 3 RO
  -
  -  IfSilent +2 0
  -  Call checkJvm
  -
  -  SetOutPath $INSTDIR
  -  File tomcat.ico
  -  File LICENSE
  -  File /r common
  -  File /nonfatal /r shared
  -  File /nonfatal /r logs
  -  File /nonfatal /r work
  -  File /nonfatal /r temp
  -  SetOutPath $INSTDIR\bin
  -  File bin\bootstrap.jar
  -  File bin\commons-logging-api.jar
  -  File bin\tomcat-juli.jar
  -  File bin\*.exe
  -  SetOutPath $INSTDIR\conf
  -  File conf\*.*
  -  SetOutPath $INSTDIR\server
  -  File /r server\lib
  -  File /nonfatal /r server\classes
  -  SetOutPath $INSTDIR\server\webapps
  -  File /r server\webapps\manager
  -  File /r server\webapps\host-manager
  -  SetOutPath $INSTDIR\webapps
  -  File /r webapps\ROOT
  -  SetOutPath $INSTDIR\conf\Catalina\localhost
  -  File conf\Catalina\localhost\manager.xml
  -  File conf\Catalina\localhost\host-manager.xml
  -
  -  Call configure
  -  Call findJavaPath
  -  Pop $2
  -
  -  IfSilent +2 0
  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  -
  -  StrCpy "$JavaHome" $2
  -  Call findJVMPath
  -  Pop $2
  -
  -  DetailPrint "Using Jvm: $2"
  -
  -  InstallRetry:
  -  ClearErrors
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //IS//Tomcat5 --DisplayName 
"Apache Tomcat" --Description "Apache Tomcat @VERSION@ Server - 
http://jakarta.apache.org/tomcat/"; --LogPath "$INSTDIR\logs" --Install 
"$INSTDIR\bin\tomcat5.exe" --Jvm "$2" --StartPath "$INSTDIR" --StopPath 
"$INSTDIR"'
  -  Pop $0
  -  StrCmp $0 "0" InstallOk
  -    MessageBox MB_ABORTRETRYIGNORE|MB_ICONSTOP \
  -      "Failed to install Tomcat5 service.$\r$\nCheck your settings and 
permissions$\r$\nIgnore and continue anyway (not recommended)?" \
  -       /SD IDIGNORE IDIGNORE InstallOk IDRETRY InstallRetry
  -  Quit
  -  InstallOk:
  -  ClearErrors
  -
  -SectionEnd
  -
  -Section "Service" SecTomcatService
  -
  -  SectionIn 3
  -
  -  IfSilent 0 +3
  -  Call findJavaPath
  -  Pop $2
  -
  -  IfSilent +2 0
  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  -
  -  StrCpy "$JavaHome" $2
  -  Call findJVMPath
  -  Pop $2
  -
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Startup auto'
  -  ; Bahave like Apache Httpd (put the icon in try on login)
  -  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor" '"$INSTDIR\bin\tomcat5w.exe" //MS//Tomcat5'
  -
  -  ClearErrors
  -
  -SectionEnd
  -
  -;Section "Source Code" SecTomcatSource
  -;
  -;  SectionIn 3
  -;  SetOutPath $INSTDIR
  -;  File /r src
  -;
  -;SectionEnd
  -
  -SubSectionEnd
  -
  -Section "Start Menu Items" SecMenu
  -
  -  SectionIn 1 2 3
  -
  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  -
  -  SetOutPath "$SMPROGRAMS\Apache Tomcat 5.5"
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Home Page.lnk" \
  -                 "http://jakarta.apache.org/tomcat";
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Welcome.lnk" \
  -                 "http://127.0.0.1:$R0/";
  -
  -;  IfFileExists "$INSTDIR\server\webapps\admin" 0 NoAdminApp
  -;
  -;  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Administration.lnk" \
  -;                 "http://127.0.0.1:$R0/admin/";
  -;NoAdminApp:
  -
  -  IfFileExists "$INSTDIR\server\webapps\manager" 0 NoManagerApp
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Manager.lnk" \
  -                 "http://127.0.0.1:$R0/manager/html";
  -
  -NoManagerApp:
  -
  -  IfFileExists "$INSTDIR\webapps\webapps\tomcat-docs" 0 NoDocumentaion
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Documentation.lnk" \
  -                 "$INSTDIR\webapps\tomcat-docs\index.html"
  -
  -NoDocumentaion:
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Uninstall Tomcat 5.5.lnk" \
  -                 "$INSTDIR\Uninstall.exe"
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat 5.5 Program 
Directory.lnk" \
  -                 "$INSTDIR"
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Monitor Tomcat.lnk" \
  -                 "$INSTDIR\bin\tomcat5w.exe" \
  -                 '//MS//Tomcat5' \
  -                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL
  -
  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Configure Tomcat.lnk" \
  -                 "$INSTDIR\bin\tomcat5w.exe" \
  -                 '//ES//Tomcat5' \
  -                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL
  -
  -SectionEnd
  -
  -Section "Documentation" SecDocs
  -
  -  SectionIn 1 3
  -  SetOutPath $INSTDIR\webapps
  -  File /r webapps\tomcat-docs
  -
  -SectionEnd
  -
  -Section "Examples" SecExamples
  -
  -  SectionIn 3
  -
  -  SetOverwrite on
  -  SetOutPath $INSTDIR\webapps
  -  File /r webapps\jsp-examples
  -  File /r webapps\servlets-examples
  -
  -SectionEnd
  -
  -;Section "Administration" SecAdmin
  -;
  -;  SectionIn 3
  -;
  -;  SetOutPath $INSTDIR\server\webapps
  -;  File /r server\webapps\admin
  -;  SetOutPath $INSTDIR\conf\Catalina\localhost
  -;  File conf\Catalina\localhost\admin.xml
  -;
  -;SectionEnd
  -
  -Section "Webapps" SecWebapps
  -
  -  SectionIn 3
  -
  -  SetOutPath $INSTDIR\webapps
  -  File /r webapps\balancer
  -  File /r webapps\webdav
  -
  -SectionEnd
  -
  -;Section "Compatibility" SecCompat
  -;
  -;  SetOutPath $INSTDIR
  -;  File /oname=bin\jmx.jar ..\compat\bin\jmx.jar
  -;  File /oname=common\endorsed\xercesImpl.jar 
..\compat\common\endorsed\xercesImpl.jar
  -;  File /oname=common\endorsed\xml-apis.jar  
..\compat\common\endorsed\xml-apis.jar
  -;
  -;SectionEnd
  -
  -Section -post
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Classpath 
"$INSTDIR\bin\bootstrap.jar" --StartClass org.apache.catalina.startup.Bootstrap 
--StopClass org.apache.catalina.startup.Bootstrap --StartParams start 
--StopParams stop  --StartMode jvm --StopMode jvm'
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --JvmOptions 
"-Dcatalina.home=$INSTDIR#-Dcatalina.base=$INSTDIR#-Djava.endorsed.dirs=$INSTDIR\common\endorsed#-Djava.io.tmpdir=$INSTDIR\temp#-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager#-Djava.util.logging.config.file=${catalina.base}\conf\logging.properties"
 --StdOutput auto --StdError auto'
  -
  -  WriteUninstaller "$INSTDIR\Uninstall.exe"
  -
  -  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"InstallPath" $INSTDIR
  -  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"Version" @VERSION@
  -  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \
  -                   "DisplayName" "Apache Tomcat 5.5 (remove only)"
  -  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \
  -                   "UninstallString" '"$INSTDIR\Uninstall.exe"'
  -
  -SectionEnd
  -
  -Function .onInit
  -
  -  ;Extract Install Options INI Files
  -  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "config.ini"
  -  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "jvm.ini"
  -
  -FunctionEnd
  -
  -Function SetChooseJVM
  -  !insertmacro MUI_HEADER_TEXT "$(TEXT_JVM_TITLE)" "$(TEXT_JVM_SUBTITLE)"
  -  Call findJavaPath
  -  Pop $3
  -  !insertmacro MUI_INSTALLOPTIONS_WRITE "jvm.ini" "Field 2" "State" $3
  -  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "jvm.ini"
  -FunctionEnd
  -
  -Function SetConfiguration
  -  !insertmacro MUI_HEADER_TEXT "$(TEXT_CONF_TITLE)" "$(TEXT_CONF_SUBTITLE)"
  -  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "config.ini"
  -FunctionEnd
  -
  -Function Void
  -FunctionEnd
  -
  -;--------------------------------
  -;Descriptions
  -
  -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcat} $(DESC_SecTomcat)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatCore} $(DESC_SecTomcatCore)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatService} 
$(DESC_SecTomcatService)
  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatSource} 
$(DESC_SecTomcatSource)
  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecCompat} $(DESC_SecCompat)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecMenu} $(DESC_SecMenu)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecExamples} $(DESC_SecExamples)
  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecAdmin} $(DESC_SecAdmin)
  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecWebapps} $(DESC_SecWebapps)
  -!insertmacro MUI_FUNCTION_DESCRIPTION_END
  -
  -
  -; =====================
  -; FindJavaPath Function
  -; =====================
  -;
  -; Find the JAVA_HOME used on the system, and put the result on the top of the
  -; stack
  -; Will return an empty string if the path cannot be determined
  -;
  -Function findJavaPath
  -
  -  ;ClearErrors
  -
  -  ;ReadEnvStr $1 JAVA_HOME
  -
  -  ;IfErrors 0 FoundJDK
  -
  -  ClearErrors
  -
  -  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"
  -  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"JavaHome"
  -  ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"RuntimeLib"
  -
  -  ;FoundJDK:
  -
  -  IfErrors 0 NoErrors
  -  StrCpy $1 ""
  -
  -NoErrors:
  -
  -  ClearErrors
  -
  -  ; Put the result in the stack
  -  Push $1
  -
  -FunctionEnd
  -
  -
  -; ====================
  -; FindJVMPath Function
  -; ====================
  -;
  -; Find the full JVM path, and put the result on top of the stack
  -; Argument: JVM base path (result of findJavaPath)
  -; Will return an empty string if the path cannot be determined
  -;
  -Function findJVMPath
  -
  -  ClearErrors
  -  
  -  ;Step one: Is this a JRE path (Program Files\Java\XXX)
  -  StrCpy $1 "$JavaHome"
  -  
  -  StrCpy $2 "$1\bin\hotspot\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\server\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\client\jvm.dll"  
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\classic\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -
  -  ;Step two: Is this a JDK path (Program Files\XXX\jre)
  -  StrCpy $1 "$JavaHome\jre"
  -  
  -  StrCpy $2 "$1\bin\hotspot\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\server\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\client\jvm.dll"  
  -  IfFileExists "$2" FoundJvmDll
  -  StrCpy $2 "$1\bin\classic\jvm.dll"
  -  IfFileExists "$2" FoundJvmDll
  -
  -  ClearErrors
  -  ;Step tree: Read defaults from registry
  -  
  -  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"
  -  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" 
"RuntimeLib"
  -  
  -  IfErrors 0 FoundJvmDll
  -  StrCpy $2 ""
  -
  -  FoundJvmDll:
  -  ClearErrors
  -
  -  ; Put the result in the stack
  -  Push $2
  -
  -FunctionEnd
  -
  -
  -; ====================
  -; CheckJvm Function
  -; ====================
  -;
  -Function checkJvm
  -
  -  !insertmacro MUI_INSTALLOPTIONS_READ $3 "jvm.ini" "Field 2" "State"
  -  IfFileExists "$3\bin\java.exe" NoErrors1
  -  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"
  -  Quit
  -NoErrors1:
  -  StrCpy "$JavaHome" $3
  -  Call findJVMPath
  -  Pop $4
  -  StrCmp $4 "" 0 NoErrors2
  -  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"
  -  Quit
  -NoErrors2:
  -
  -FunctionEnd
  -
  -; ==================
  -; Configure Function
  -; ==================
  -;
  -; Display the configuration dialog boxes, read the values entered by the 
user,
  -; and build the configuration files
  -;
  -Function configure
  -
  -  !insertmacro MUI_INSTALLOPTIONS_READ $R0 "config.ini" "Field 2" "State"
  -  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "config.ini" "Field 5" "State"
  -  !insertmacro MUI_INSTALLOPTIONS_READ $R2 "config.ini" "Field 7" "State"
  -
  -  IfSilent 0 +2
  -  StrCpy $R4 'port="8080"'
  -
  -  IfSilent +2 0
  -  StrCpy $R4 'port="$R0"'
  -
  -  IfSilent 0 +2
  -  StrCpy $R5 ''
  -
  -  IfSilent Silent 0
  -
  -  ; Escape XML
  -  Push $R1
  -  Call xmlEscape
  -  Pop $R1
  -  Push $R2
  -  Call xmlEscape
  -  Pop $R2
  -  
  -  StrCpy $R5 '<user name="$R1" password="$R2" roles="admin,manager" />'
  -
  -Silent:
  -  DetailPrint 'HTTP/1.1 Connector configured on port "$R0"'
  -  DetailPrint 'Admin user added: "$R1"'
  -
  -  SetOutPath $TEMP
  -  File /r confinstall
  -
  -  ; Build final server.xml
  -  Delete "$INSTDIR\conf\server.xml"
  -  FileOpen $R9 "$INSTDIR\conf\server.xml" w
  -
  -  Push "$TEMP\confinstall\server_1.xml"
  -  Call copyFile
  -  FileWrite $R9 $R4
  -  Push "$TEMP\confinstall\server_2.xml"
  -  Call copyFile
  -
  -  FileClose $R9
  -
  -  DetailPrint "server.xml written"
  -
  -  ; Build final tomcat-users.xml
  -  
  -  Delete "$INSTDIR\conf\tomcat-users.xml"
  -  FileOpen $R9 "$INSTDIR\conf\tomcat-users.xml" w
  -
  -  Push "$TEMP\confinstall\tomcat-users_1.xml"
  -  Call copyFile
  -  FileWrite $R9 $R5
  -  Push "$TEMP\confinstall\tomcat-users_2.xml"
  -  Call copyFile
  -
  -  FileClose $R9
  -
  -  DetailPrint "tomcat-users.xml written"
  -
  -  RMDir /r "$TEMP\confinstall"
  -
  -FunctionEnd
  -
  -
  -Function xmlEscape
  -  Pop $0
  -  ${StrRep} $0 $0 "&" "&amp;"
  -  ${StrRep} $0 $0 "$\"" "&quot;"
  -  ${StrRep} $0 $0 "<" "&lt;"
  -  ${StrRep} $0 $0 ">" "&gt;"
  -  Push $0
  -FunctionEnd
  -
  -
  -; =================
  -; CopyFile Function
  -; =================
  -;
  -; Copy specified file contents to $R9
  -;
  -Function copyFile
  -
  -  ClearErrors
  -
  -  Pop $0
  -
  -  FileOpen $1 $0 r
  -
  - NoError:
  -
  -  FileRead $1 $2
  -  IfErrors EOF 0
  -  FileWrite $R9 $2
  -
  -  IfErrors 0 NoError
  -
  - EOF:
  -
  -  FileClose $1
  -
  -  ClearErrors
  -
  -FunctionEnd
  -
  -
  -;--------------------------------
  -;Uninstaller Section
  -
  -Section Uninstall
  -
  -  Delete "$INSTDIR\modern.exe"
  -  Delete "$INSTDIR\Uninstall.exe"
  -
  -  ; Stop Tomcat service monitor if running
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5w.exe" //MQ//Tomcat5'
  -  ; Delete Tomcat service
  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //DS//Tomcat5'
  -  ClearErrors
  -
  -  DeleteRegKey HKCR "JSPFile"
  -  DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5"
  -  DeleteRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5"
  -  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor"
  -  RMDir /r "$SMPROGRAMS\Apache Tomcat 5.5"
  -  Delete "$INSTDIR\tomcat.ico"
  -  Delete "$INSTDIR\LICENSE"
  -  RMDir /r "$INSTDIR\bin"
  -  RMDir /r "$INSTDIR\common"
  -  Delete "$INSTDIR\conf\*.dtd"
  -  RMDir /r "$INSTDIR\shared"
  -  RMDir "$INSTDIR\logs"
  -  RMDir /r "$INSTDIR\server"
  -  RMDir /r "$INSTDIR\webapps\balancer"
  -  RMDir /r "$INSTDIR\webapps\tomcat-docs"
  -  RMDir /r "$INSTDIR\webapps\servlets-examples"
  -  RMDir /r "$INSTDIR\webapps\jsp-examples"
  -  RMDir /r "$INSTDIR\webapps\webdav"
  -  RMDir /r "$INSTDIR\work"
  -  RMDir /r "$INSTDIR\temp"
  -  RMDir /r "$INSTDIR\src"
  -  RMDir "$INSTDIR"
  -
  -  IfSilent Removed 0
  -
  -  ; if $INSTDIR was removed, skip these next ones
  -  IfFileExists "$INSTDIR" 0 Removed 
  -    MessageBox MB_YESNO|MB_ICONQUESTION \
  -      "Remove all files in your Tomcat 5.5 directory? (If you have anything  
\
  - you created that you want to keep, click No)" IDNO Removed
  -    RMDir /r "$INSTDIR\webapps\ROOT" ; this would be skipped if the user 
hits no
  -    RMDir "$INSTDIR\webapps"
  -    Delete "$INSTDIR\*.*" 
  -    RMDir /r "$INSTDIR"
  -    Sleep 500
  -    IfFileExists "$INSTDIR" 0 Removed 
  -      MessageBox MB_OK|MB_ICONEXCLAMATION \
  -                 "Note: $INSTDIR could not be removed."
  -  Removed:
  -
  -SectionEnd
  -
  -;eof
  +

  +; Tomcat script for Nullsoft Installer

  +; $Id$

  +

  +  ;Compression options

  +  CRCCheck on

  +  SetCompress force

  +  SetCompressor lzma

  +  SetDatablockOptimize on

  +

  +  Name "Apache Tomcat"

  +

  +  ;Product information

  +  VIAddVersionKey ProductName "Apache Tomcat"

  +  VIAddVersionKey CompanyName "Apache Software Foundation"

  +  VIAddVersionKey LegalCopyright "Copyright (c) 1999-2005 The Apache 
Software Foundation"

  +  VIAddVersionKey FileDescription "Apache Tomcat Installer"

  +  VIAddVersionKey FileVersion "2.0"

  +  VIAddVersionKey ProductVersion "@VERSION@"

  +  VIAddVersionKey Comments "jakarta.apache.org/tomcat"

  +  VIAddVersionKey InternalName "[EMAIL PROTECTED]@.exe"

  +  VIProductVersion @VERSION_NUMBER@

  +

  +!include "MUI.nsh"

  +!include "StrFunc.nsh"

  +${StrRep}

  +  Var "JavaHome"

  +

  +

  +

  +;--------------------------------

  +;Configuration

  +

  +  !define MUI_HEADERIMAGE

  +  !define MUI_HEADERIMAGE_RIGHT

  +  !define MUI_HEADERIMAGE_BITMAP header.bmp

  +  !define MUI_WELCOMEFINISHPAGE_BITMAP side_left.bmp 

  +  !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\webapps\ROOT\RELEASE-NOTES.txt"

  +  !define MUI_FINISHPAGE_RUN $INSTDIR\bin\tomcat5w.exe

  +  !define MUI_FINISHPAGE_RUN_PARAMETERS //MR//Tomcat5

  +  !define MUI_FINISHPAGE_NOREBOOTSUPPORT

  +

  +  !define MUI_ABORTWARNING

  +

  +  !define TEMP1 $R0

  +  !define TEMP2 $R1

  +

  +  !define MUI_ICON tomcat.ico

  +  !define MUI_UNICON tomcat.ico

  +

  +  ;General

  +  OutFile tomcat-installer.exe

  +

  +  ;Install Options pages

  +  LangString TEXT_JVM_TITLE ${LANG_ENGLISH} "Java Virtual Machine"

  +  LangString TEXT_JVM_SUBTITLE ${LANG_ENGLISH} "Java Virtual Machine path 
selection."

  +  LangString TEXT_JVM_PAGETITLE ${LANG_ENGLISH} ": Java Virtual Machine path 
selection"

  +

  +  LangString TEXT_CONF_TITLE ${LANG_ENGLISH} "Configuration"

  +  LangString TEXT_CONF_SUBTITLE ${LANG_ENGLISH} "Tomcat basic configuration."

  +  LangString TEXT_CONF_PAGETITLE ${LANG_ENGLISH} ": Configuration Options"

  +

  +  ;Install Page order

  +  !insertmacro MUI_PAGE_WELCOME

  +  !insertmacro MUI_PAGE_LICENSE INSTALLLICENSE

  +  !insertmacro MUI_PAGE_COMPONENTS

  +  !insertmacro MUI_PAGE_DIRECTORY

  +  Page custom SetConfiguration Void "$(TEXT_CONF_PAGETITLE)"

  +  Page custom SetChooseJVM Void "$(TEXT_JVM_PAGETITLE)"

  +  !insertmacro MUI_PAGE_INSTFILES

  +  Page custom CheckUserType

  +  !insertmacro MUI_PAGE_FINISH

  +

  +  ;Uninstall Page order

  +  !insertmacro MUI_UNPAGE_CONFIRM

  +  !insertmacro MUI_UNPAGE_INSTFILES

  +

  +  ;License dialog

  +  LicenseData License.rtf

  +

  +  ;Component-selection page

  +    ;Descriptions

  +    LangString DESC_SecTomcat ${LANG_ENGLISH} "Install the Tomcat Servlet 
container."

  +    LangString DESC_SecTomcatCore ${LANG_ENGLISH} "Install the Tomcat 
Servlet container core."

  +    LangString DESC_SecTomcatService ${LANG_ENGLISH} "Automatically start 
Tomcat when the computer is started. This requires Windows NT 4.0, Windows 2000 
or Windows XP."

  +;    LangString DESC_SecTomcatSource ${LANG_ENGLISH} "Install the Tomcat 
source code."

  +    LangString DESC_SecMenu ${LANG_ENGLISH} "Create a Start Menu program 
group for Tomcat."

  +    LangString DESC_SecDocs ${LANG_ENGLISH} "Install the Tomcat 
documentation bundle. This include documentation on the servlet container and 
its configuration options, on the Jasper JSP page compiler, as well as on the 
native webserver connectors."

  +    LangString DESC_SecExamples ${LANG_ENGLISH} "Installs some examples web 
applications."

  +    LangString DESC_SecAdmin ${LANG_ENGLISH} "Installs the administration 
web application.";

  +;    LangString DESC_SecWebapps ${LANG_ENGLISH} "Installs other utility web 
applications (WebDAV, balancer, etc)."

  +;    LangString DESC_SecCompat ${LANG_ENGLISH} "Installs Java2™ 
compatibility package. This release of Apache Tomcat was packaged to run on 
J2SE 5.0 or later. It can be run on earlier JVMs by installng this package."

  +

  +  ;Language

  +  !insertmacro MUI_LANGUAGE English

  +

  +  ;Folder-select dialog

  +  InstallDir "$PROGRAMFILES\Apache Software Foundation\Tomcat 5.5"

  +

  +  ;Install types

  +  InstType Normal

  +  InstType Minimum

  +  InstType Full

  +

  +  ; Main registry key

  +  InstallDirRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" ""

  +

  +  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS

  +  ReserveFile "jvm.ini"

  +  ReserveFile "config.ini"

  +

  +;--------------------------------

  +;Installer Sections

  +

  +SubSection "Tomcat" SecTomcat

  +

  +Section "Core" SecTomcatCore

  +

  +  SectionIn 1 2 3 RO

  +

  +  IfSilent +2 0

  +  Call checkJvm

  +

  +  SetOutPath $INSTDIR

  +  File tomcat.ico

  +  File LICENSE

  +  File /r common

  +  File /nonfatal /r shared

  +  File /nonfatal /r logs

  +  File /nonfatal /r work

  +  File /nonfatal /r temp

  +  SetOutPath $INSTDIR\bin

  +  File bin\bootstrap.jar

  +  File bin\commons-logging-api.jar

  +  File bin\tomcat-juli.jar

  +  File bin\*.exe

  +  SetOutPath $INSTDIR\conf

  +  File conf\*.*

  +  SetOutPath $INSTDIR\server

  +  File /r server\lib

  +  File /nonfatal /r server\classes

  +  SetOutPath $INSTDIR\server\webapps

  +  File /r server\webapps\manager

  +  File /r server\webapps\host-manager

  +  SetOutPath $INSTDIR\webapps

  +  File /r webapps\ROOT

  +  SetOutPath $INSTDIR\conf\Catalina\localhost

  +  File conf\Catalina\localhost\manager.xml

  +  File conf\Catalina\localhost\host-manager.xml

  +

  +  Call configure

  +  Call findJavaPath

  +  Pop $2

  +

  +  IfSilent +2 0

  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  +

  +  StrCpy "$JavaHome" $2

  +  Call findJVMPath

  +  Pop $2

  +

  +  DetailPrint "Using Jvm: $2"

  +

  +  InstallRetry:

  +  ClearErrors

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //IS//Tomcat5 --DisplayName 
"Apache Tomcat" --Description "Apache Tomcat @VERSION@ Server - 
http://jakarta.apache.org/tomcat/"; --LogPath "$INSTDIR\logs" --Install 
"$INSTDIR\bin\tomcat5.exe" --Jvm "$2" --StartPath "$INSTDIR" --StopPath 
"$INSTDIR"'

  +  Pop $0

  +  StrCmp $0 "0" InstallOk

  +    MessageBox MB_ABORTRETRYIGNORE|MB_ICONSTOP \

  +      "Failed to install Tomcat5 service.$\r$\nCheck your settings and 
permissions$\r$\nIgnore and continue anyway (not recommended)?" \

  +       /SD IDIGNORE IDIGNORE InstallOk IDRETRY InstallRetry

  +  Quit

  +  InstallOk:

  +  ClearErrors

  +

  +SectionEnd

  +

  +Section "Service" SecTomcatService

  +

  +  SectionIn 3

  +

  +  IfSilent 0 +3

  +  Call findJavaPath

  +  Pop $2

  +

  +  IfSilent +2 0

  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  +

  +  StrCpy "$JavaHome" $2

  +  Call findJVMPath

  +  Pop $2

  +

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Startup auto'

  +  ; Bahave like Apache Httpd (put the icon in try on login)

  +  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor" '"$INSTDIR\bin\tomcat5w.exe" //MS//Tomcat5'

  +

  +  ClearErrors

  +

  +SectionEnd

  +

  +;Section "Source Code" SecTomcatSource

  +;

  +;  SectionIn 3

  +;  SetOutPath $INSTDIR

  +;  File /r src

  +;

  +;SectionEnd

  +

  +SubSectionEnd

  +

  +Section "Start Menu Items" SecMenu

  +

  +  SectionIn 1 2 3

  +

  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  +

  +  SetOutPath "$SMPROGRAMS\Apache Tomcat 5.5"

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Home Page.lnk" \

  +                 "http://jakarta.apache.org/tomcat";

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Welcome.lnk" \

  +                 "http://127.0.0.1:$R0/";

  +

  +;  IfFileExists "$INSTDIR\server\webapps\admin" 0 NoAdminApp

  +;

  +;  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Administration.lnk" \

  +;                 "http://127.0.0.1:$R0/admin/";

  +;NoAdminApp:

  +

  +  IfFileExists "$INSTDIR\server\webapps\manager" 0 NoManagerApp

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Manager.lnk" \

  +                 "http://127.0.0.1:$R0/manager/html";

  +

  +NoManagerApp:

  +

  +  IfFileExists "$INSTDIR\webapps\webapps\tomcat-docs" 0 NoDocumentaion

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Documentation.lnk" \

  +                 "$INSTDIR\webapps\tomcat-docs\index.html"

  +

  +NoDocumentaion:

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Uninstall Tomcat 5.5.lnk" \

  +                 "$INSTDIR\Uninstall.exe"

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat 5.5 Program 
Directory.lnk" \

  +                 "$INSTDIR"

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Monitor Tomcat.lnk" \

  +                 "$INSTDIR\bin\tomcat5w.exe" \

  +                 '//MS//Tomcat5' \

  +                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL

  +

  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Configure Tomcat.lnk" \

  +                 "$INSTDIR\bin\tomcat5w.exe" \

  +                 '//ES//Tomcat5' \

  +                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL

  +

  +SectionEnd

  +

  +Section "Documentation" SecDocs

  +

  +  SectionIn 1 3

  +  SetOutPath $INSTDIR\webapps

  +  File /r webapps\tomcat-docs

  +

  +SectionEnd

  +

  +Section "Examples" SecExamples

  +

  +  SectionIn 3

  +

  +  SetOverwrite on

  +  SetOutPath $INSTDIR\webapps

  +  File /r webapps\jsp-examples

  +  File /r webapps\servlets-examples

  +

  +SectionEnd

  +

  +;Section "Administration" SecAdmin

  +;

  +;  SectionIn 3

  +;

  +;  SetOutPath $INSTDIR\server\webapps

  +;  File /r server\webapps\admin

  +;  SetOutPath $INSTDIR\conf\Catalina\localhost

  +;  File conf\Catalina\localhost\admin.xml

  +;

  +;SectionEnd

  +

  +Section "Webapps" SecWebapps

  +

  +  SectionIn 3

  +

  +  SetOutPath $INSTDIR\webapps

  +  File /r webapps\balancer

  +  File /r webapps\webdav

  +

  +SectionEnd

  +

  +;Section "Compatibility" SecCompat

  +;

  +;  SetOutPath $INSTDIR

  +;  File /oname=bin\jmx.jar ..\compat\bin\jmx.jar

  +;  File /oname=common\endorsed\xercesImpl.jar 
..\compat\common\endorsed\xercesImpl.jar

  +;  File /oname=common\endorsed\xml-apis.jar  
..\compat\common\endorsed\xml-apis.jar

  +;

  +;SectionEnd

  +

  +Section -post

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Classpath 
"$INSTDIR\bin\bootstrap.jar" --StartClass org.apache.catalina.startup.Bootstrap 
--StopClass org.apache.catalina.startup.Bootstrap --StartParams start 
--StopParams stop  --StartMode jvm --StopMode jvm'

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --JvmOptions 
"-Dcatalina.home=$INSTDIR#-Dcatalina.base=$INSTDIR#-Djava.endorsed.dirs=$INSTDIR\common\endorsed#-Djava.io.tmpdir=$INSTDIR\temp#-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager#-Djava.util.logging.config.file=${catalina.base}\conf\logging.properties"
 --StdOutput auto --StdError auto'

  +

  +  WriteUninstaller "$INSTDIR\Uninstall.exe"

  +

  +  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"InstallPath" $INSTDIR

  +  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"Version" @VERSION@

  +  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \

  +                   "DisplayName" "Apache Tomcat 5.5 (remove only)"

  +  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \

  +                   "UninstallString" '"$INSTDIR\Uninstall.exe"'

  +

  +SectionEnd

  +

  +Function .onInit

  +

  +  ;Extract Install Options INI Files

  +  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "config.ini"

  +  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "jvm.ini"

  +

  +FunctionEnd

  +

  +Function SetChooseJVM

  +  !insertmacro MUI_HEADER_TEXT "$(TEXT_JVM_TITLE)" "$(TEXT_JVM_SUBTITLE)"

  +  Call findJavaPath

  +  Pop $3

  +  !insertmacro MUI_INSTALLOPTIONS_WRITE "jvm.ini" "Field 2" "State" $3

  +  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "jvm.ini"

  +FunctionEnd

  +

  +Function SetConfiguration

  +  !insertmacro MUI_HEADER_TEXT "$(TEXT_CONF_TITLE)" "$(TEXT_CONF_SUBTITLE)"

  +  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "config.ini"

  +FunctionEnd

  +

  +Function Void

  +FunctionEnd

  +

  +;--------------------------------

  +;Descriptions

  +

  +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcat} $(DESC_SecTomcat)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatCore} $(DESC_SecTomcatCore)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatService} 
$(DESC_SecTomcatService)

  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatSource} 
$(DESC_SecTomcatSource)

  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecCompat} $(DESC_SecCompat)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecMenu} $(DESC_SecMenu)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecExamples} $(DESC_SecExamples)

  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecAdmin} $(DESC_SecAdmin)

  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecWebapps} $(DESC_SecWebapps)

  +!insertmacro MUI_FUNCTION_DESCRIPTION_END

  +

  +

  +; =====================

  +; CheckUserType Function

  +; =====================

  +;

  +; Check the user type, and warn if it's not an administrator.

  +; Taken from Examples/UserInfo that ships with NSIS.

  +Function CheckUserType

  +  ClearErrors

  +  UserInfo::GetName

  +  IfErrors Win9x

  +  Pop $0

  +  UserInfo::GetAccountType

  +  Pop $1

  +  StrCmp $1 "Admin" 0 +3

  +    ; This is OK, do nothing

  +    Goto done

  +

  +    MessageBox MB_OK|MB_ICONEXCLAMATION 'Note: the current user is not an 
administrator. \

  +               To run Tomcat as a Windows service, you must be an 
administrator. \

  +               You can still run Tomcat from the command-line as this type 
of user.'

  +    Goto done

  +

  +  Win9x:

  +    # This one means you don't need to care about admin or

  +    # not admin because Windows 9x doesn't either

  +    MessageBox MB_OK "Error! This DLL can't run under Windows 9x!"

  +

  +  done:

  +FunctionEnd

  +

  +

  +; =====================

  +; FindJavaPath Function

  +; =====================

  +;

  +; Find the JAVA_HOME used on the system, and put the result on the top of the

  +; stack

  +; Will return an empty string if the path cannot be determined

  +;

  +Function findJavaPath

  +

  +  ;ClearErrors

  +

  +  ;ReadEnvStr $1 JAVA_HOME

  +

  +  ;IfErrors 0 FoundJDK

  +

  +  ClearErrors

  +

  +  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"

  +  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"JavaHome"

  +  ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"RuntimeLib"

  +

  +  ;FoundJDK:

  +

  +  IfErrors 0 NoErrors

  +  StrCpy $1 ""

  +

  +NoErrors:

  +

  +  ClearErrors

  +

  +  ; Put the result in the stack

  +  Push $1

  +

  +FunctionEnd

  +

  +

  +; ====================

  +; FindJVMPath Function

  +; ====================

  +;

  +; Find the full JVM path, and put the result on top of the stack

  +; Argument: JVM base path (result of findJavaPath)

  +; Will return an empty string if the path cannot be determined

  +;

  +Function findJVMPath

  +

  +  ClearErrors

  +  

  +  ;Step one: Is this a JRE path (Program Files\Java\XXX)

  +  StrCpy $1 "$JavaHome"

  +  

  +  StrCpy $2 "$1\bin\hotspot\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\server\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\client\jvm.dll"  

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\classic\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +

  +  ;Step two: Is this a JDK path (Program Files\XXX\jre)

  +  StrCpy $1 "$JavaHome\jre"

  +  

  +  StrCpy $2 "$1\bin\hotspot\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\server\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\client\jvm.dll"  

  +  IfFileExists "$2" FoundJvmDll

  +  StrCpy $2 "$1\bin\classic\jvm.dll"

  +  IfFileExists "$2" FoundJvmDll

  +

  +  ClearErrors

  +  ;Step tree: Read defaults from registry

  +  

  +  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"

  +  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" 
"RuntimeLib"

  +  

  +  IfErrors 0 FoundJvmDll

  +  StrCpy $2 ""

  +

  +  FoundJvmDll:

  +  ClearErrors

  +

  +  ; Put the result in the stack

  +  Push $2

  +

  +FunctionEnd

  +

  +

  +; ====================

  +; CheckJvm Function

  +; ====================

  +;

  +Function checkJvm

  +

  +  !insertmacro MUI_INSTALLOPTIONS_READ $3 "jvm.ini" "Field 2" "State"

  +  IfFileExists "$3\bin\java.exe" NoErrors1

  +  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"

  +  Quit

  +NoErrors1:

  +  StrCpy "$JavaHome" $3

  +  Call findJVMPath

  +  Pop $4

  +  StrCmp $4 "" 0 NoErrors2

  +  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"

  +  Quit

  +NoErrors2:

  +

  +FunctionEnd

  +

  +; ==================

  +; Configure Function

  +; ==================

  +;

  +; Display the configuration dialog boxes, read the values entered by the 
user,

  +; and build the configuration files

  +;

  +Function configure

  +

  +  !insertmacro MUI_INSTALLOPTIONS_READ $R0 "config.ini" "Field 2" "State"

  +  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "config.ini" "Field 5" "State"

  +  !insertmacro MUI_INSTALLOPTIONS_READ $R2 "config.ini" "Field 7" "State"

  +

  +  IfSilent 0 +2

  +  StrCpy $R4 'port="8080"'

  +

  +  IfSilent +2 0

  +  StrCpy $R4 'port="$R0"'

  +

  +  IfSilent 0 +2

  +  StrCpy $R5 ''

  +

  +  IfSilent Silent 0

  +

  +  ; Escape XML

  +  Push $R1

  +  Call xmlEscape

  +  Pop $R1

  +  Push $R2

  +  Call xmlEscape

  +  Pop $R2

  +  

  +  StrCpy $R5 '<user name="$R1" password="$R2" roles="admin,manager" />'

  +

  +Silent:

  +  DetailPrint 'HTTP/1.1 Connector configured on port "$R0"'

  +  DetailPrint 'Admin user added: "$R1"'

  +

  +  SetOutPath $TEMP

  +  File /r confinstall

  +

  +  ; Build final server.xml

  +  Delete "$INSTDIR\conf\server.xml"

  +  FileOpen $R9 "$INSTDIR\conf\server.xml" w

  +

  +  Push "$TEMP\confinstall\server_1.xml"

  +  Call copyFile

  +  FileWrite $R9 $R4

  +  Push "$TEMP\confinstall\server_2.xml"

  +  Call copyFile

  +

  +  FileClose $R9

  +

  +  DetailPrint "server.xml written"

  +

  +  ; Build final tomcat-users.xml

  +  

  +  Delete "$INSTDIR\conf\tomcat-users.xml"

  +  FileOpen $R9 "$INSTDIR\conf\tomcat-users.xml" w

  +

  +  Push "$TEMP\confinstall\tomcat-users_1.xml"

  +  Call copyFile

  +  FileWrite $R9 $R5

  +  Push "$TEMP\confinstall\tomcat-users_2.xml"

  +  Call copyFile

  +

  +  FileClose $R9

  +

  +  DetailPrint "tomcat-users.xml written"

  +

  +  RMDir /r "$TEMP\confinstall"

  +

  +FunctionEnd

  +

  +

  +Function xmlEscape

  +  Pop $0

  +  ${StrRep} $0 $0 "&" "&amp;"

  +  ${StrRep} $0 $0 "$\"" "&quot;"

  +  ${StrRep} $0 $0 "<" "&lt;"

  +  ${StrRep} $0 $0 ">" "&gt;"

  +  Push $0

  +FunctionEnd

  +

  +

  +; =================

  +; CopyFile Function

  +; =================

  +;

  +; Copy specified file contents to $R9

  +;

  +Function copyFile

  +

  +  ClearErrors

  +

  +  Pop $0

  +

  +  FileOpen $1 $0 r

  +

  + NoError:

  +

  +  FileRead $1 $2

  +  IfErrors EOF 0

  +  FileWrite $R9 $2

  +

  +  IfErrors 0 NoError

  +

  + EOF:

  +

  +  FileClose $1

  +

  +  ClearErrors

  +

  +FunctionEnd

  +

  +

  +;--------------------------------

  +;Uninstaller Section

  +

  +Section Uninstall

  +

  +  Delete "$INSTDIR\modern.exe"

  +  Delete "$INSTDIR\Uninstall.exe"

  +

  +  ; Stop Tomcat service monitor if running

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5w.exe" //MQ//Tomcat5'

  +  ; Delete Tomcat service

  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //DS//Tomcat5'

  +  ClearErrors

  +

  +  DeleteRegKey HKCR "JSPFile"

  +  DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5"

  +  DeleteRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5"

  +  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor"

  +  RMDir /r "$SMPROGRAMS\Apache Tomcat 5.5"

  +  Delete "$INSTDIR\tomcat.ico"

  +  Delete "$INSTDIR\LICENSE"

  +  RMDir /r "$INSTDIR\bin"

  +  RMDir /r "$INSTDIR\common"

  +  Delete "$INSTDIR\conf\*.dtd"

  +  RMDir /r "$INSTDIR\shared"

  +  RMDir "$INSTDIR\logs"

  +  RMDir /r "$INSTDIR\server"

  +  RMDir /r "$INSTDIR\webapps\balancer"

  +  RMDir /r "$INSTDIR\webapps\tomcat-docs"

  +  RMDir /r "$INSTDIR\webapps\servlets-examples"

  +  RMDir /r "$INSTDIR\webapps\jsp-examples"

  +  RMDir /r "$INSTDIR\webapps\webdav"

  +  RMDir /r "$INSTDIR\work"

  +  RMDir /r "$INSTDIR\temp"

  +  RMDir /r "$INSTDIR\src"

  +  RMDir "$INSTDIR"

  +

  +  IfSilent Removed 0

  +

  +  ; if $INSTDIR was removed, skip these next ones

  +  IfFileExists "$INSTDIR" 0 Removed 

  +    MessageBox MB_YESNO|MB_ICONQUESTION \

  +      "Remove all files in your Tomcat 5.5 directory? (If you have anything  
\

  + you created that you want to keep, click No)" IDNO Removed

  +    RMDir /r "$INSTDIR\webapps\ROOT" ; this would be skipped if the user 
hits no

  +    RMDir "$INSTDIR\webapps"

  +    Delete "$INSTDIR\*.*" 

  +    RMDir /r "$INSTDIR"

  +    Sleep 500

  +    IfFileExists "$INSTDIR" 0 Removed 

  +      MessageBox MB_OK|MB_ICONEXCLAMATION \

  +                 "Note: $INSTDIR could not be removed."

  +  Removed:

  +

  +SectionEnd

  +

  +;eof

  
  
  
  1.350     +3 -0      jakarta-tomcat-catalina/webapps/docs/changelog.xml
  
  Index: changelog.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
  retrieving revision 1.349
  retrieving revision 1.350
  diff -u -r1.349 -r1.350
  --- changelog.xml     2 Aug 2005 13:47:11 -0000       1.349
  +++ changelog.xml     2 Aug 2005 18:12:05 -0000       1.350
  @@ -38,6 +38,9 @@
         <fix>
           <bug>35930</bug>: Bad logging config used by the Tomcat Windows 
service (remm)
         </fix>
  +      <add>
  +        <bug>33261</bug>: Windows installer now checks the user type and 
warns non-admins as needed. (yoavs)
  +      </add>
       </changelog>
     </subsection>
     
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to