iv
Contents
Overview of Windows installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Windows Installer environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Non-Windows Installer environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Customizing JRun installers with Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
About merge modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Working with merge modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Merge module list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Working with InstallShield Developer 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Determining merge module location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Connecting a merge module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Using Windows Installer on the command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Using the Windows Installer wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
CHAPTER 4
Platform-Independent JRun Installers . . . . . . . . . . . 27
About files for custom installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Using BIN files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
BIN file list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
BIN file properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
CHAPTER 5
Embedding JRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Connecting to external web servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Silently running the Web Server Configuration tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Including the Web Server Configuration tool in the installer . . . . . . . . . . . . . . . . . . . . . .33
Working with web applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Hiding JSP source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Adding web applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Removing web applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Hiding the JMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Rebranding JRun tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Rebranding the Web Server Configuration tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Rebranding the JRun Launcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Rebranding the JMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
JMC source code overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Creating a custom JRun interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Hiding the JMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Deploying applications outside the JRun directory structure . . . . . . . . . . . . . . . . . . . . . .44
Using exit handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
JRunExitHandler interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Exit handler example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Exit codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
CHAPTER 6
Using the JMC Custom Tag Library . . . . . . . . . . . . . 47
Extracting the JMC custom tag library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Strategies for working with the JMC custom tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Finding services, classes, and methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Using the service and server attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Using the mbean attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Understanding offline properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Using the errorId attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Using the type and id attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51