jupidator.dtd: Elements - Entities - Source | Intro - Index
FRAMES / NO FRAMES

Remote definition file


<updatelist> Root element

This is the main element of the Jupidator file.

<updatelist>'s children
NameCardinality
architectAny number
versionAt least one
<updatelist>'s attributes
NameValuesDefault
application
baseurl
icon
jupidator
Element's model:

(architect*, version+)


@application Attribute of updatelist

The application name

Required


@baseurl Attribute of updatelist

The base URL of the files to be downloaded. This is the reference "parent" URL, where all remote URL addresses are defined.

Required


@icon Attribute of updatelist

The image icon of the application. It should be in a format that the JRE will be able to understand (e.g. PNG). For example, if baseurl is http://www.myserver.org/files and icon is icons/mascot.png then the icon URL is http://www.myserver.org/files/icons/mascot.png


@jupidator Attribute of updatelist

The minimum required release of Jupidator. To find the current release number, run Jupidator jar from the command line with no parameters. If no version is provided, no implicit Jupidator library version will be required.


<architect> Child of updatelist

Jupidator can be used in various architectures. With this element we define which architectures we support. Since Jupidator is developed in Java, where multi-platform programming is encouraged, this is reflected here too. Architectures are marked with a "tag" and this "tag" can be used in more than one actual architecture (for example in Mac OS X under PPC and Intel machines at the same time). See also documentation of tag attribute

<architect>'s children
NameCardinality
launcherOnly one
<architect>'s attributes
NameValuesDefault
arch
os
tag
Element's model:

(launcher)


@tag Attribute of architect

The tag which marks this architecture. More than one architectures can share the same tag and are used the same by Jupidator. Some special tags exist: "any" and "all". When "any" is used,it matchs all architectures that do not have a specific arch tag defined. Tag "all" matches all targets, and adds it's child elements to the currently most appropriate arch target. So, the final elements are a combination of (a) those either specifically mentioned with "architect" compatible tags or the "any" tag and (b) elements defined by "all" tags.

Required


@os Attribute of architect

The operating system of this machine. This variable matches current operating system if System property "os.name" starts with this value. This attribute is not case sensitive.

Required


@arch Attribute of architect

The machine architecture. This variable matches current operating system if System property "os.arch" starts with this value. This attribute is not case sensitive.

Required


<launcher> Child of architect

This element is mandatory and defines how the application should be launched after the update procedure. Launching the updater is typically the same across updates, but differs in every platform.

<launcher>'s children
NameCardinality
argumentAny number
<launcher>'s attributes
NameValuesDefault
exec
Element's model:

(argument*)


@exec Attribute of launcher

The executable filename. If arguments are required, these are defined by the nested argument element. Have in mind that variables, like ${JAVABIN}, can be used.

Required


<argument/> Child of exec, launcher

Command line argument for the launcher. If no arguments are required, this element can be ommited. In the XML file there are as many argument elements, as the required arguments. Have in mind that variables, like ${APPHOME} can be used.

<argument>'s attributes
NameValuesDefault
value

This element is always empty.


@value Attribute of argument

The value of the argument

Required


<version> Child of updatelist

Every new version of the application has one version element. Here the files which needed to be updated are defined. If this version is written only for display reasons (i.e. to produce the changelog of versions prior of Jupidator), no arch elements are required.

<version>'s children
NameCardinality
archAny number
descriptionOnly one
<version>'s attributes
NameValuesDefault
release
version
Element's model:

(description, (arch)*)


@release Attribute of version

The integer value of the current release. This number is checked against the "release" value of the runtime environment.

Remember that release files are incrementally defined. All versions with release number greater than the one given to the runtime environment, will be taken into account - not only the last one!

Required


@version Attribute of version

Human readable display of the current release version

Required


<description> Child of version

Free text description of this version. HTML tags are allowed, if escaped correctly to be included inside the XML document.


<arch> Child of version

Architecture dependent actions. If this is a matching architecture, a set of actions will be performed. If more than one architecture has changes for this release, then all architectures should be defined. If no changes exist for one arhcitecture, then this information will be skipped.

<arch>'s children
NameCardinality
chmodAny number
chownAny number
execAny number
fileAny number
killAny number
rmAny number
waitAny number
<arch>'s attributes
NameValuesDefault
guifalse
name
Element's model:

(file | rm | chmod | chown | exec | kill | wait)*


@name Attribute of arch

The name of this architecture, as defined by the tag attribute of the architect element.

Required


@gui Attribute of arch

The installer will present a graphical window spinning for this version onwards. If this attribute is not present, no GUI is requested.

Default value: false


<file> Child of arch

Download a file from the remote location, relative to base URL. The latest file from every version will be taken into account.

<file>'s children
NameCardinality
md5Any number
sha1Any number
sha2Any number
<file>'s attributes
NameValuesDefault
compressnone
destdir
forceinstallfalse
ifexistsfalse
name
size
sourcedir
Element's model:

(sha1 | sha2 | md5)*


@sourcedir Attribute of file

The directory in the source location where this file exists. This is appended to the base URL.

Required


@destdir Attribute of file

The destination directory of the file. This directory is not relative to anything. If you want to refer to other locations, like for example the application home, you need to specifically define this location with variables, such as ${APPHOME}.

Required


@name Attribute of file

The file name. The name of the file is the same in both the source URL and in the destination directory. If this file is compressed then the appropriate compression extension is added to the source file name. The compression extension should never be present in this tag (even for package files). If this is a zip or tar file with at least two content files (i.e. is a "package" file), then the value of this attribute is used only to locate the filename on the server and will not be inherited to the destination location. You can use directories inside the zip file to deploy to a deeper level directory.

Required


@size Attribute of file

The size of the source file. It will be used to check if the downloaded file has correct size.

Required


@compress Attribute of file

The source file is compressed in the server. The following methods can be used: "gzip" "bzip2" "zip" "tar" "tar.gz" "tar.bz2". This extension will be added to the source URL.

If a file is marked as one of "zip", "tar", "tar.gz" or "tar.bz2", then this is a package file. If only one file is found inside the package file, then this file is treated as a "stream", like the "gzip" and "bzip2" containers, and the filename stored inside the zip file will be ignored. If more than one file is found inside the package file, then all the file contents of this package file will be unpacked at the desired location. This is a convenience method to unpack a bunch of files simultaneously, as a package, without the need to define these files one by one.

An actual package file which is not marked "compress"-ed with this attribute, is handled like any other regular file, and no decompression is performed.

Default value: none


@ifexists Attribute of file

Download and install this file only if this file already exists. If it does not, then this file is ignored.

Default value: false


@forceinstall Attribute of file

This attribute is disabled (false) by default. With this default behaviour, if the selected runtime application is under an operating system that takes care of the update process by itself, this file is ignored. If it is enabled, then this file is used no matter what the operating system does. Enable this feature if you want to upgrade parts of the application that are not taken care by the operating system.

Default value: false


<sha1/> Child of file

SHA1 checksum of the specified file

<sha1>'s attributes
NameValuesDefault
value

This element is always empty.


@value Attribute of sha1

Value of SHA1 checksum in HEX

Required


<sha2/> Child of file

SHA2 checksum of the specified file. Defaults to to SHA-256, but the developer can use other methods

<sha2>'s attributes
NameValuesDefault
type256
value

This element is always empty.


@type Attribute of sha2

The type of the SHA2 algorithm. Defaults to 256. Other valid values are 384 and 512

Default value: 256


@value Attribute of sha2

Value of SHA2 checksum in HEX

Required


<md5/> Child of file

MD5 checksum of the specified file

<md5>'s attributes
NameValuesDefault
value

This element is always empty.


@value Attribute of md5

Value of MD5 checksum in HEX

Required


<rm/> Child of arch

Remove a local file.

<rm>'s attributes
NameValuesDefault
file
forceinstallfalse

This element is always empty.


@file Attribute of rm

The local file name. The full path name is expected.

Required


@forceinstall Attribute of rm

If enabled, the owner of this file are changed in any case. For discussion about this parameter, see forceinstall under the file element.

Default value: false


<chmod/> Child of arch

Change permissions of a local file. This element is supported only in Unix-like operating systems.

<chmod>'s attributes
NameValuesDefault
attr
file
forceinstallfalse
recursivefalse

This element is always empty.


@file Attribute of chmod

The local file name. The full path name is expected.

Required


@attr Attribute of chmod

The new attributes of this file. The syntax is the same with <command>chmod</command> command.

Required


@recursive Attribute of chmod

If this is a directory, change attributes of all files recursively.

Default value: false


@forceinstall Attribute of chmod

If enabled, the owner of this file are changed in any case. For discussion about this parameter, see forceinstall under the file element.

Default value: false


<chown/> Child of arch

Change owner of a local file. This element is supported only in Unix-like operating systems.

<chown>'s attributes
NameValuesDefault
attr
file
forceinstallfalse
recursivefalse

This element is always empty.


@file Attribute of chown

The local file name. The full path name is expected.

Required


@attr Attribute of chown

The new owner of this file. The syntax is the same with <command>chown</command> command.

Required


@recursive Attribute of chown

If this is a directory, change owner of all files recursively.

Default value: false


@forceinstall Attribute of chown

If enabled, the owner of this file are changed in any case. For discussion about this parameter, see forceinstall under the file element.

Default value: false


<exec> Child of arch

Execute a native command

<exec>'s children
NameCardinality
argumentAny number
<exec>'s attributes
NameValuesDefault
executable
forceinstallfalse
input
timeAFTER
Element's model:

(argument*)


@executable Attribute of exec

The filename of the executable

Required


@time Attribute of exec

When this command will be executed. Should be "BEFORE" "AFTER" or "MID". By default "MID" parameter is used. This property is not case sensitive.

Default value: AFTER


@input Attribute of exec

The input of this command, if needed by the application


@forceinstall Attribute of exec

If enabled, the command is executed in any case. For discussion about this parameter, see forceinstall under the file element.

Default value: false


<kill/> Child of arch

Kill a specified task. This element works in both Windows and Unix-like systems

<kill>'s attributes
NameValuesDefault
forceinstallfalse
process
signalTERM

This element is always empty.


@process Attribute of kill

The name of the process. This could be a regular expression which will match the running process. When applied, could match more than one running process.

Required


@signal Attribute of kill

The signal to send. This is platform specific information. In Unix-like is the "TERM" signal. There is no need to preceed the signal name/number with a "-" sybol.

Default value: TERM


@forceinstall Attribute of kill

If enabled, the application is killed in any case. For discussion about this parameter, see forceinstall under the file element.

Default value: false


<wait/> Child of arch

This element is used in the last stage of the installation, to pause the installer for the specified number of milliseconds

<wait>'s attributes
NameValuesDefault
forceinstallfalse
msecs1000
timeBEFORE

This element is always empty.


@msecs Attribute of wait

The number of milliseconds the installer should wait

Default value: 1000


@time Attribute of wait

When this command will be executed. Should be "BEFORE" "AFTER" or "MID". By default "BEFORE" parameter is used. This property is not case sensitive.

Default value: BEFORE


@forceinstall Attribute of wait

If enabled, waiting is performed in any case (and installation information is displayed). For discussion about this parameter, see forceinstall under the file element.

Default value: false