Message-ID: <1653477129.1279.1429927542722.JavaMail.email@example.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1278_929009317.1429927542721" ------=_Part_1278_929009317.1429927542721 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
This panel allows you to execute arbitrary files after installation.
You may also want to refer to the specific example of Executing a Java Cl= ass with ProcessPanel for a discussion of of a particular use case for = the ProcessPanel.
The details for the execution process are specified using the resource <= code>ProcessPanel.Spec.xml.
The XML file has the following format:
may have the following attributes and an =
|(not set)||name given to the step the job||yes|
|(not set)||IzPack condition ID for running the job||no|
|catch||false||Job runs only in the event of othe= r jobs failing||no|
|final||false||Job runs always, whether previous = jobs succeed or not||no|
The 'catch' and 'final' attributes for= a process panel job are used to create a try/catch/final structure for you= r processes. If a standard job (one without catch or final) fails, the proc= ess panel will skip the remaining jobs and exit with a failure.
In the event of a failure of a normal job, any jobs marked with the '
If a job fails and there is no 'catch' job, the process= panel will skip the remaining jobs and exit with a failure.
The jobs marked with the 'final' attributes will always= run regardless of success or failure.
In the example above, the "run on failure" job is only r= un if one of the "do xyz" jobs fails. The "run always" = job is always run regardless of whether there is a previous failure or not.=
See the IzPack OS Restrictio= ns tag.
In addition to
<arg> elements, the <=
<executefile> element also accepts
<env> elements to set variables in the envir=
onment of the target process. This can be useful if this process requires s=
ome environment variables, such as its installation directory, to work prop=
<env> element has the followin=
<env>variable=3Dvalue</env>. Note the element supports variable substitution, for example:
The workingDir attribute for the
utefile> element adds the ability to set the working dir=
ectory of the process spawned by the ProcessBuilder object, much as <env> elements=
refer to the environment object of ProcessBuilder.
The ProcessPanel now also supports configurable behaviour for the panel'=
s "Previous" and "Next" buttons. By adding
children to the
element, you can define which buttons you want unlocked in case of failure =
and in case of success, respectively.
In the above example the job do xyz would be run, and if it ret=
urned with an error, the next button would be greyed out, and the =
button to the previous page would be enabled. If it returned witho=
ut an error, the conditions of the
<onSuccess> elements =
would be checked and the respective action would be taken.
<e= xecuteclass>- Execute Java Classes
It is also possible to execute Java classes from this panel. Here's what= this feature's author (Alex Bradley) says:
> i've been able to work around my requirements by extending the
ProcessPanel.Spec.xml to include a =
> i've also added a new sub-class of
Processable called =
executeclass. This will run a user-specified class in the cont=
ext of the installer JVM with a single method :
> It can do everything i need and more. In particular, it allows me t= o write a process extension and still be able to provide feedback to the us= er through the feedback panel, and to add new functionality to the installe= r, after its been built.
To use the executeclass facility, you will need to create a jar file wit= h your class and then add it to the installer with the `The Jar Merging Ele= ment`.
See Executing a Java Class with ProcessPanel for details.
<executeForPack>- Only execute the job for certain= packs
This can be be used to run the job only if the pack is enabled. For exam=
ple, the batch file will if either the
ables packs are selected at install time.
<logfiledir>- Output of the processPanel saved to a = log
Output that is written to the ProcessPanel's textarea can be duplicated =
in an optional logfile. Add a
<logfiledir> element to the <processing> element of=
ml to tell IzPack the location, where the logfile should be sto=
Variable substitution is performed, so you can use
code> for example.
The name of the logfile is not configurable but should fit in most cases=
. It will be named Install_V<$APP_VER><YYYY><MM><DD><hh><=
span style=3D"text-decoration: line-through;"><mm><ss>_&=
Here's an example:
This will generate a logfile named e.g.
-22-20_43423.log located in
ProcessPanelWorker will write all output that is directed t=
stderr to this file if
Panel.Spec.xml contains the
Please note that the same file is used for all jobs.