11.3 KineticFusion Properties Details
11.3.1
General Properties
11.3.1.1
kinesis.preload
This property defines the behavior of the KineticFusion
application on startup. The KineticFusion application takes
several seconds to load in the application and optimize the
compiler. This delay is normally encountered when the first
ActionScript script block is analyzed by the application.
This startup for processing the first ActionScript blocks
can be greatly decreased by setting the value of this
property to 'true'. When set, the KineticFusion compiler
will load in all application components used by the
application when the application first starts and initialize
the compiler by loading all top-level intrinsic class
definitions.
Value Type |
Boolean |
|
-
false
- Application and compiler are loaded and initialized on demand
-
true
- Application and compiler are loaded and initialized on startup
|
Default Value |
true |
11.3.2
General Repository properties
11.3.2.1
kinesis.repository.directory
When KineticFusion converts SWF movies to RVML it
extracts all multimedia resources from the SWF movie and
stores these in a separate repository location. When the
property 'kinesis.repository.isRelative' is false or
undefined, all repositories are located under the name
of the directory specified by this property. A
repository is created for each SWF movie using the name
of the RVML output file and the word "Resources" e.g. for an
output document called myMovie.rvml, a repository directory will be
created called myMovieResources. Currently, five
different types of resources are supported by
KineticFusion: sound, image, font, video, and Classes
and each resource type is stored in a separate
subdirectory in the repository. A reference to the
absolute location to the repository is stored in the
RVML file so this property is not used when compiling
RVML back to SWF. The repository is also used as the
default location for storing decompiled ActionScript 2.0
classes.
This property is also used to define the default base
repository path for Repository elements with a 'File'
type that do not have an explicit repositoryBase
attribute defined.
Value Type |
Directory |
Default Value |
${Installation Directory}/projects/repository
|
11.3.2.2
kinesis.repository.isRelative
When KineticFusion converts SWF movies to RVML it extracts
all multimedia resources from the SWF movie and stores these
in a separate repository location. When this property is
true, all new repository locations are created relative to
the location of the output RVML document. The
'kinesis.repository.relativePrefix' property can be used to
specify additional subdirectories under which the repository
is created.
Value Type |
Boolean |
|
-
false
- New repositories will be created under the directory specified by the property 'kinesis.repository.directory'
-
true
- New repositories will be created relative to the location of the output RVML document
|
Default Value |
false |
11.3.2.3
kinesis.repository.overwrite
When an SWF movie is being converted to RVML, all resources
are stored in a repository. When an SWF movie is converted
several times then the same resources may be stored in the
repository multiple times. When this property is set to
'false', should a file with the same name as a resource
already exist, a new file with an additional suffix is
created e.g. if a file Image1.jpg already exists in the
repository and an SWF is decompiled again, then this will
result in a new resource called Image1_00000001.jpg being
created. This can result in a resource repository quickly
getting filled up with many duplicate resources. When this
property is set to 'true', resources will be overwritten if
they already exist in the repository. This will stop the
repository from getting cluttered with duplicate files,
however all existing RVML documents that reference the
repository may refer to incorrect resources.
Value Type |
Boolean |
|
-
false
- Create new resources when decompiling new SWF
-
true
- Overwrite existing resources when decompiling new SWF
|
Default Value |
false |
11.3.2.4
kinesis.repository.relativePrefix
When KineticFusion converts SWF movies to RVML it extracts
all multimedia resources from the SWF movie and stores these
in a separate repository location. When the property
'kinesis.repository.isRelative' is true, this property
defines an additional path to be added to the repository
under the directory containing the output RVML file.
When left blank or undefined, the repository for an SWF is
placed in the same directory as the RVML file. To prevent
pollution of the directory, a user can use this property to
ensure that the resources for all RVML files in that directory are
stored in a single common subdirectory. For example, when
decompiling an swf to Test.rvml in directory c:/rvml, when
this property is blank the movie repository is stored in
c:/rvml/TestResources. When this property is set to
'repository', the movie repository is stored in
c:/rvml/repository/TestResources.
Value Type |
String |
Default Value |
Blank |
11.3.2.5
kinesis.repository.systemFontPath
KineticFusion can use TrueType fonts for rendering static
and dynamic text. TrueType fonts generally contain a large
number of character representations and hinting information.
Rather than extracting this font information from the font
file every time it is requested in RVML, TrueType fonts can
be imported into the KineticFusion application in native
format and stored in the System font path. Fonts in the
system font path can be be referenced by font name alone.
System fonts are also used to augment font information to in
RVML documents that are missing glyphs after editing. All
missing glyphs and metrics, if available, are automatically
imported on demand from the corresponding system font.
Value Type |
String representing a location where system fonts can be
stored
|
Default Value |
None |
11.3.2.6
kinesis.repository.defaultSystemFont
When modifying RVML documents, it is possible to change text
within a static or dynamic text field to contain characters
that are not available in the original font. KineticFusion
will automatically look for missing characters in a system
font of the same name. However, if no system font can be
located, this property defines a replacement font family
that should be used for all missing characters.
KineticFusion will attempt to match all the style attributes
of the missing font characters, e.g. bold, italic, using the
Windows font naming convention when selecting a font from
the default family to use as a replacement. The Windows font
naming convention adds Bold and Italic suffixes to the font
name e.g. Arial, Arial Bold, Arial Italic, Arial Bold
Italic. If the specific font style cannot be found, then the
normal font is used.
Value Type |
String representing the default font family name to be used
|
Default Value |
None |
11.3.2.7
Image Resource Properties
11.3.2.7.1
kinesis.repository.storeJPEGExternal
The JPEG image format is an optimized 'lossy' image format
in which the storage size of the image can be reduced at the
expense of a (normally) slight reduction in image quality.
This compression ability makes it one the most common image
formats in use today, especially for photographic images.
JPEG images can be created, viewed and edited with virtually
all graphical packages. SWF movies can contain JPEG images,
stored in the SWF when it is published. When KineticFusion
decompiles an SWF movie all JPEG images are extracted to SWF
movies that contain only the image. The SWF movie is sized
to exactly the dimensions of the image and is created with a
red background, so any alpha-channel in the image can be
clearly seen. The application will also extract all JPEG
images into valid JPEG image files when this property is
'true' so that these images can be modified using an
image-processing application. The resource description in
RVML will always refer to the SWF resource type even when
this property is set to 'true' as KineticFusion can read
images from SWF movies quicker than from JPEG image files.
The resource description in RVML can be edited manually to
refer to the JPEG image if the image is edited externally.
Value Type |
Boolean |
|
-
false
- Do not create copy of resource as external JPEG image
-
true
- Create copy of resource as external JPEG image
|
Default Value |
false |
11.3.2.7.2
kinesis.repository.storeLosslessExternal
There are many image formats for storing lossless image
information, the most popular being the GIF format. Due to
licensing issues, a new image format call PNG is replacing
GIF images as the storage format of choice for storing
lossless images. Lossless images are often used instead of
JPEG images when using images that are produced from vector
sources that can be highly compressed e.g. maps, cartoons.
PNG images can be created, viewed and edited with many
graphical packages. SWF movies can contain lossless images,
derived from any of the popular lossless image formats,
stored in the SWF when it is published. When KineticFusion
decompiles an SWF movie all lossless images are extracted to
SWF movies that contain only the image. The SWF movie is
sized to exactly the dimensions of the image and is created
with a red background, so any alpha-channel in the image can
be clearly seen. The application will also extract all
lossless images into valid PNG image files when this
property is 'true' so that these images can be modified
using an image-processing application. The resource
description in RVML will always refer to the SWF resource
type even when this property is set to 'true' as
KineticFusion can read lossless images from SWF movies much
quicker than from PNG image files. The resource descripton
in RVML can be edited manually to refer to the PNG image if
the image is edited externally. The creation and importing
of PNG images take up considerable processing resources so
the preferred storage format is SWF.
Value Type |
Boolean |
|
-
false
- Do not create copy of resource as external PNG image
-
true
- Create copy of resource as external PNG image
|
Default Value |
false |
11.3.3
RVML Output Properties
11.3.3.1
kinesis.xml.dtdLocation
This property defines the location of the RVML DTD document
that can be used to validate the document. The value of this
property is embedded into the header of all RVML documents
in the format specified by the outputValidatingXML property.
The RVML DTD is distributed with KineticFusion and is found
in the installation 'config' directory.
Value Type |
Path to RVML.dtd |
Default Value |
dtd/RVML.dtd |
11.3.3.2
kinesis.xml.outputBOM
KineticFusion uses UTF-8 for all output documents. This is
thought to be the most efficient character for representing XML documents and will
be able handle all character sets supported by the Flash platform. However, KineticFUsion must guess at the encoding of all input RVML documents. The encoding attribute of the XML declaration is optional so KineticFusion reads in some sample data from the beginning of the file to determine the encoding. The UTF-8 Byte-Order-Mark (BOM) is a three-byte marker at the beginning of UTF-8 documents (0xef 0xbb 0xbf) that automatically signals to all Unicode-aware processors that the document is in UTF-8 format.
If KineticFusion cannot not find a character code greater that 127 in the first 4K of the input document, the document is assumed to be in ISO-8859-1 encoding. This is a common 8-bit Latin encoding. However, should any UTF-8 characters be embedded within the document outside of the first 4K they will incorrectly decoded.
When this configuration property is enabled, KineticFusion will output a UTF-8 BOM marker at the beginning of all RVML documents. While this is the most exact manner of identifying the document as UTF-8, many editors and processors are still not Unicode-aware and cannot interpret the BOM byte sequence. Adding a UTF BOM can cause other XML processors to abort as the XML declaration, where defined, must be the first character of a document. Non Unicode-aware processors may instead believe that the XML declaration is not until the fourth character.
See also the documentation on
kinesis.xml.outputUTFComment
Value Type |
Boolean |
|
-
false
- Do not write a UTF-8 BOM at the beginning of each RVML output document
-
true
- Write a UTF-8 BOM at the beginning of each RVML output document
|
Default Value |
false |
11.3.3.3
kinesis.xml.outputUTFComment
KineticFusion uses UTF-8 for all output documents. This is
thought to be the most efficient character for representing XML documents and will
be able handle all character sets supported by the Flash platform. However, KineticFusion must guess at the encoding of all input RVML documents. The encoding attribute of the XML declaration is optional so KineticFusion reads in some sample data from the beginning of the file to determine the encoding. By writing a single character comment after the XML declaration of the output RVML document, KineticFusion will automatically be able to detect the encoding of the input document by reading the first line of the document. The comment is empty except for a single non-breaking space character (0xa0).
Using a comment instead of a UTF-8 means that editors or other document processors that are not Unicode aware will not generate an error thinking the XML declaration is not the first character of the document. Using a comment with UTF-8 content avoids this problem.
See also the documentation on
kinesis.xml.outputBOM
Value Type |
Boolean |
|
-
false
- Do not write a UTF-8 comment after the XML declaration at the top of each RVML output document
-
true
- Write a UTF-8 BOM comment after the XML declaration
|
Default Value |
true |
11.3.3.4
kinesis.swf.inputEncoding
All strings stored in an SWF movie are encoded using a
specific encoding format. Since SWF version 6, this encoding
format has been standardized and uses the "UTF-8" format.
However in SWF versions less than 6, strings are encoded in
SWF movies in a locale-specific way, using an implicit
character encoding. For most SWF movies, this encoding
defaults to the default locale of the authoring environment.
KineticFusion will use the default system locale when
reading SWF movies of version 5 or lower. If an SWF movie
has strings in a different encoding, then this property
should be set to the name of the desired encoding.
Value Type |
Encoding String |
Default Value |
UTF-8 |
11.3.3.5
kinesis.xml.outputFontDefinitions
SWF movies can contain a number of embedded font
definitions. An SWF font definition contains a definition of
each glyph exported with the font, plus optional additional
metrics information for defining inter-glyph properties.
KineticFusion normally exports all font resources to the
repository to be stored in SWF movies however each font can
be represented as RVML instead. When this property is set to
'true', a 'FontDefinition' RVML tag is defined for each
embedded font and all associated font information is output
as RVML. This can be very useful when a user wishes to reuse
a glyph outline as an RVML symbol or to alter the metrics of
a font however, for large fonts, this can cause any
resulting RVML document to become extremely large. It is
recommended that SWF font resources be used for production
RVML documents.
Value Type |
Boolean |
|
-
false
- Store all font resources in SWF format
-
true
- Output FontDefinition elements for all embedded font resources
|
Default Value |
false |
11.3.3.6
kinesis.xml.colorFormat
The KineticFusion RVML parser can accept color
specifications in a number of different formats: named
colors, 'rgb(r,g,b)' tuples with opacity attributes,
'rgba(r,g,b,a)' tuples, and SVG-style hexadecimal formats.
For readability purposes, KineticFusion outputs colors by
name if possible by default. When not possible it outputs
colors using the 'rgb(r,g,b)' tuple format with an optional
opacity attribute, in the range of 0 to 1, if the alpha
channel value is not 100%. This configuration option permits
a developer to override the color output format.
Value Type |
String |
|
-
name_rgb
- The name of the color is used, if known, otherwise an rgb tuple and opacity attribute is used to represent the color
-
name_rgba
- The name of the color is used, if known, otherwise an rgba tuple is used to represent the color
-
name_hex
- The name of the color is used, if known, otherwise an rgb hex format (#rrggbb) and opacity attribute is used to represent the color
-
name_hexa
- The name of the color is used, if known, otherwise an rgba hex format (#rrggbbaa) is used to represent the color
-
rgb
- An rgb tuple and opacity attribute is used to represent the color
-
rgba
- An rgba tuple is used to represent the color
-
hex
- An rgb hex format (#rrggbb) and opacity attribute is used to represent the color
-
hexa
- An rgba hex format (#rrggbbaa) is used to represent the color
|
Default Value |
name_rgb |
11.3.3.7
kinesis.xml.outputOptionalBounds
Several SWF symbols have bounds that are explicitly stored within the SWF movie. However, most symbols do not specify explicit bounds. The bounds of a symbol are very useful for calculating the transformation attributes required to scale symbols when placing and minipulating them on the timeline.
When this attribute is enabled KineticFusion will automatically calculate the bounds for MorphShape, Button, and MovieClip symbols and add a bounds attributes to the RVML symbols. These attributes are informational only.
Value Type |
Boolean |
|
-
false
- Do not calculate or output optional bounds attributes
-
true
- Calculate and output optional bounds attributes for MorphShape, Button and MovieClip symbols
|
Default Value |
true |
11.3.3.8
kinesis.xml.shortPlaceElements
Each Place element and Alter element in RVML can have a Transform child element that defines an absolute
geometric transform to be applied to the symbol. In many cases the action of the Transform element is
unclear as there is no reference to the actual height or width attributes of the symbol being replaced.
When this propererty is enabled, all geometric transforms for symbols placed or altered on the timeline
are analyzed to see if they can be more simply expressed in terms of the width, height and rotation of
of the symbol. If so, then the Transform element is discarded and the new attributes are added to the
Place/Alter elements for width, height, and rotation.
There are both advantages and disadvantages to this approach. The advantage is that it adds much more semantic information to the timeline operation, and makes it much easier to highlight the function of the transform. The main disadvantage is that if the content of the symbol changes before recompilation, the modified content could affect the attributes of the symbol and so cause the new timeline operation to use a different transform than the original.
Value Type |
Boolean |
|
-
false
- Do not replace Transform elements, even where possible.
-
true
- Replace all Transform elements with attributes, where possible
|
Default Value |
true |
11.3.3.9
kinesis.xml.outputValidatingXML
This property allows the user to configure the XML header of
all RVML documents produced by decompiling SWF movies. When
an RVML document is compiled to SWF format, the input RVML
is not checked for total conformity with the RVML DTD. This
can permit an invalid RVML document structure to be
processed and output as SWF. When this property is set to
true, the XML header output at the top of the RVML document
contains an uncommented reference to the DTD defined by the
'kinesis.xml.dtdLocation' property. When false, the DTD
reference is still output but within an XML comment so that
a user may enable the DTD manually by editing the document
and removing the comment delimiters.
Value Type |
Boolean |
|
-
false
- A commented DTD reference will be output in the header of all RVML documents
-
true
- An active DTD reference will be output in the header of all RVML documents
|
Default Value |
false |
11.3.3.10
kinesis.actionscript.resolveSWFClasses
ActionScript 2.0 is a valuable representation for
ActionScript classes but the underlying compiled
representation of an AS 2.0 class is the same as that used
in AS 1.0. This means that when AS 2.0 classes are
decompiled, they will be decompiled as AS 1.0 ActionScript,
and its corresponding RVML configuration symbols. When this
property is true, all input SWF movies are analyzed for the
presence of AS2.0 classes. All discovered classes will be
removed from the RVML document and reconstituted in the
class subdirectory of the movie repository. Additionally all
classes will be analyzed to ensure that field references are
fully resolved and visibility rules for AS2.0 classes are
adhered to. Classes decompiled in this way are suitable for
compilation by the KineticFusion compiler, however they may
lack a lot of the semantic information found in the original
source class. The default visibility information for all
class methods, constructors and properties is public while
all fields default to private visibility. In addition,
dynamic classes may be changed to ordinary classes and
augmented instead with additional fields that were
referenced for the class. Type information is not currently
restored for these classes though this will be a feature of
a later version of KineticFusion. When this property is set
to false, all output ActionScript will be in AS 1.0 format.
When converting a resulting document to SWF, the
analyzeScripts property should be disabled since there will
be many class references in this code to classes that are
already defined implicitly in AS1.0.
Value Type |
Boolean |
|
-
false
- Input SWF movies will not be analyzed for the presence of AS2.0 classes.
-
true
- Input SWF movies will be analyzed for the presence of AS2.0 classes, and all classes will be extracted and stored in the repository.
|
Default Value |
true |
11.3.3.11
kinesis.actionscript.storeDuplicateSystemClasses
When KineticFusion decompiles SWFs containing AS2.0
classes, it will extract all class definitions and store
them in the repository (for more information on this see
kinesis.actionscript.resolveSWFClasses
). The class path for these decompiled classes is added
to the generated RVML so that all classes used in the
movie can be located when regenerating an SWF. On
recompiling all classes specified in the ClassPath
element inside an RVML document take precedence over
classes that are found on either the system or user
class path.
When an SWF contains AS2.0 classes for which the user
already has the source code for, it is frequently
preferable that the original source code is used when
recompiling the RVML document, rather than the classes
generated on decompiling. When this option is set to
false, all decompiled classes that can also be located
on the system class path ( see
kinesis.actionscript.systemClassPath
) are discarded and are not stored in the class
repository. On recompilation, the class definition on
the system class path will instead be used for
compilation.
A similar property,
kinesis.actionscript.storeDuplicateUserClasses
exists for determining the behavior of class found on
the user class path
Value Type |
Boolean |
|
-
false
- All classes found on the system class path will be discarded
-
true
- All classes found on the system class path will also be included in the decompiled class repository
|
Default Value |
true |
11.3.3.12
kinesis.actionscript.storeDuplicateUserClasses
When KineticFusion decompiles SWFs containing AS2.0
classes, it will extract all class definitions and store
them in the repository (for more information on this see
kinesis.actionscript.resolveSWFClasses
). The class path for these decompiled classes is added
to the generated RVML so that all classes used in the
movie can be located when regenerating an SWF. On
recompiling all classes specified in the ClassPath
element inside an RVML document take precedence over
classes that are found on either the system or user
class path.
When an SWF contains AS2.0 classes for which the user
already has the source code for, it is frequently
preferable that the original source code is used when
recompiling the RVML document, rather than the classes
generated on decompiling. When this option is set to
false, all decompiled classes that can also be located
on the user class path ( see
kinesis.actionscript.userClassPath
) are discarded and are not stored in the class
repository. On recompilation, the class definition on
the user class path will instead be used for
compilation.
A similar property,
kinesis.actionscript.storeDuplicateSystemClasses
exists for determining the behavior of class found on
the system class path
Value Type |
Boolean |
|
-
false
- All classes found on the user class path will be discarded
-
true
- All classes found on the user class path will also be included in the decompiled class repository
|
Default Value |
true |
11.3.3.13
kinesis.actionscript.unicodeConstants
ActionScript can contain constant text strings. These
strings can be composed of any standard Unicode characters.
When ActionScript string constants are defined in source
code, they can be defined as normal characters (in an editor
that supports the viewing and editing of such characters),
or using the standard Unicode notation of \Uxxxx, where xxxx
represents the character code for the character. When
KineticFusion decompiles string constants, it can convert
all characters with a code greater than 127 to Unicode
character notation. This is the default behavior when this
property is set to true. When set to false, the characters
are output directly however they may be converted to XML
Unicode entities if the property kinesis.xml.unicodeEntities
is set to true.
Value Type |
Boolean |
|
-
false
- Output Non-ASCII characters in native format
-
true
- Output non-ASCII characters as Unicode constants
|
Default Value |
true |
11.3.3.14
kinesis.xml.unicodeEntities
XML documents can represent text content in a number of
ways. Since all Unicode characters are valid XML characters,
these characters can be embedded in any RVML text without
additional processing. Not all document viewers and editors,
however, have the necessary font sets or capabilities to
render these character correctly. KineticFusion will output
all characters with a character code less than 127 as a
standard character. If this property is set to true, then
all characters with codes greater than 127 will be output as
Unicode character entities - that is, the numeric character
code, prefixed with a '#' character and suffixed with a
semicolon. When false, then all characters, regardless of
their character code will be output as standard characters.
Value Type |
Boolean |
|
-
false
- Output Non-ASCII characters in native format
-
true
- Output non-ASCII characters as Unicode character entities
|
Default Value |
true |
11.3.4
SWF Output Properties
11.3.4.1
kinesis.swf.outputEncoding
All strings stored in an SWF movie are encoded using a
specific encoding format. Since SWF version 6, this encoding
format has been standardized and uses the "UTF-8" format.
However in SWF versions less than 6, strings are encoded in
SWF movies in a locale-specific way, using an implicit
character encoding. For most SWF movies, this encoding
defaults to the default locale of the authoring environment.
KineticFusion will use the default system locale when
writing SWF movies of version 5 or lower. If an output SWF
movie is to have strings in a different encoding, then this
property should be set to the name of the desired encoding.
Value Type |
Encoding String |
Default Value |
UTF-8 |
11.3.4.2
kinesis.swf.outputMetadata
Each RVML document can contain structured metadata
information for the overall document and for each symbol
within the document. This metadata can specify a title for
the RVML document and a description for each document
symbol. Using metadata is the preferred manner for
documenting RVML symbols as it permits the roundtripping of
documentation that would otherwise be lost, when stored in
comments. When this property is set to 'true', a compressed
block of data is added to the end of any SWF created by
KineticFusion. This block contains all the Title and Desc
elements defined in the movie, and this is used to recreate
metadata when the SWF is re-read. The overhead associated
with this block is quite small since the block is compressed
(regardless of the compressed nature of the movie). It is
recommended that metadata is output only for development
RVML documents and not for production RVML documents, since
it may allow other users to recreate your RVML document more
easily.
Value Type |
Boolean |
|
-
false
- Discard all movie and symbol metadata on movie output
-
true
- Add compressed block at end of movie containing all Title and Desc elements that can be reconstituted on input. The Metadata element is not currently stored.
|
Default Value |
false |
11.3.4.3
kinesis.swf.outputSymbolNames
Each symbol used in an RVML document has a unique symbol ID.
When an SWF movie is converted to RVML these symbol IDs are
allocated to each symbol based on any identifier allocated
to the symbol or container of the symbol within the SWF move
e.g. if a symbol is exported with the name 'Square',
KineticFusion will assign the ID 'Square' to the symbol; if
a symbol is placed on the timeline of a MovieClip with name
'Clip' and an instance name of 'Square' KineticFusion will
create a symbol ID of 'Clip.Square' for the symbol. For
those symbols whose names cannot be derived then generic
names are created for the symbols instead.
SWF movies have no concept of symbol ID names but instead
use numeric IDs. If a symbol is given an ID that does not
correlate with the KineticFusion-assigned ID then this ID
will be discarded when the SWF movie is created. When the
user is performing round-trip processing of RVML movies, it
may be desirable to ensure that symbol names are maintained
(round-tripping can be useful for verification purposes, or
for simplifying symbols by resolving ShapeTransforms, Paths,
Arcs etc). When this property is set to 'true', a compressed
block of data is added to the end of any SWF created by
KineticFusion. This block contains the symbol name for each
symbol ID in the movie, and this is used to recreate symbol
IDs when the SWF is re-read. The overhead associated with
this block is quite small since the block is compressed
(regardless of the compressed nature of the movie). It is
recommended that symbol names are output only for
development RVML documents and not for production RVML
documents, since it may allow other users to recreate your
RVML document more easily.
Value Type |
Boolean |
|
-
false
- Discard all symbol name information on movie output
-
true
- Add compressed block at end of movie containing all precompiled symbol names
|
Default Value |
false |
11.3.4.4
kinesis.xml.validate
When an RVML document is compiled to SWF format,
KineticFusion will assume the document is conformant with
the RVML specification and the input RVML is not checked
against the RVML DTD. This can permit an invalid RVML
document structure to be processed and output as SWF. When
this property is set to true, the header of the RVML
document must reference a valid DTD for the RVML vocabulary.
This allows verification of the input RVML and ensures that
all elements and attributes are correctly specified. Should
the input RVML document not match the required document
structure as required DTD, an error will be reported
indicating the location and type of the error. As wrongly
structured documents are a frequent cause of error,
validation is extremely useful for debugging purposes. It is
recommended to validate RVML documents frequently during
development, however there is no need to revalidate existing
correct RVML documents as validation requires additional
computing resources. Validation against the RVML Schema,
also located in the installation 'config' directory, is also
possible when supported by the XML parser used, and the
appropriate XML header is defined in the document. More
information about configuring different XML parsers can be
found in the Installation Readme.
Value Type |
Boolean |
|
-
false
- No validation is performed on input RVML documents. The validation feature of the parser is turned off.
-
true
- All input RVML documents are validated. By default, documents are validated against a DTD and a DTD must be specified in the header of the RVML document. All errors will be reported to the user.
|
Default Value |
false |
11.3.5
Logging Properties
11.3.5.1
kinesis.logging.logFile
KineticFusion logs all output to both the KineticFusion GUI
console and to the application standard output. When this
option is defined, it specifies an additional file for all
logging output. This is useful when the output of the
KineticFusion compiler or class analyzer is to be processed
automatically to automatically identify errors or execution
status. The behavior of the log file is further determined
by the
kinesis.logging.appendFile
property
Value Type |
File name |
Default Value |
None |
11.3.5.2
kinesis.logging.appendFile
When the
kinesis.logging.logFile
property is defined, all log output is written to the
specified log file in addition to the normal destinations.
This property specifies the behavior of the application
when writing to the log file. When true, the existing
contents of the file remain unchanged and all new log output
is appended to the log file. When false, all existing file
content is discarded. If the file does not already exist,
this option is ignored.
Value Type |
Boolean |
|
-
false
- If a log file is specified, it is truncated on application startup
-
true
- If a log file is specified, then all logged output will be appended to the specified file
|
Default Value |
false |
11.3.5.3
kinesis.logging.logActionScriptToConsole
When KineticFusion is running in GUI mode, all ActionScript messages are written to the
output Warnings table. This option is used when running KineticFusion in command-line mode
for defining whether ActionScript warnings should be logged to the normal logging console. It is overridden
in the GUI by the persistent menu option
View->Log ActionScript to Console thaqt defaults initially to
false. When enabled, the entire text of the error message is printed out with the name of the file, the error ID, and the source line.
Value Type |
Boolean |
|
-
false
- ActionScript warnings and errors are not logged to the console
-
true
- ActionScript warnings and errors are logged to the console
|
Default Value |
true |
11.3.5.4
kinesis.logging.format
KineticFusion current produces all log messages in the following format:
Warning|Error :- (Error Number) Message
Location (as <FileName>, Line: <line>, Col: <col>)
Source Line
Some IDEs require log messages in different fonts that this. One such IDE is NetBeans that requires all
location output to be in the form:
<FileName>:<line>:<col>
If the specified format canot be interpreted
then the output defaults to the normal KineticFusion style. In the future, if it is desirable, we may use external templates to specify the logging format.
Value Type |
String |
|
- netbeans
- Use the NetBeans format for representing location information
- kf
- Use the normal KineticFusion logging format
|
Default Value |
kf |
11.3.6
ActionScript Properties
11.3.6.1
ActionScript Parsing Properties
11.3.6.1.1
kinesis.actionscript.analyzeScripts
All ActionScript defined within an RVML document or
referenced by an RVML document can be in either AS 1.0
format or AS2.0 format. While the KineticFusion compiler
accepts AS2.0 syntax for all scripts, this property can be
used to indicate whether type-checking should be enabled and
external classes referenced. When true, all declared types
and class references are resolved using the defined class
paths for the document or application. All referenced
classes are compiled, analyzed and output in the resulting
SWF document. Classes defined using AS 1.0 convention can
still be used however intrinsic class definitions must exist
on the class path for all such classes. When false, no RVML
or included scripts will be analyzed and no external classes
will be compiled into the resulting SWF movie. This property
should be enabled for all AS 2.0 development environments.
Value Type |
Boolean |
|
-
false
- All RVML movies are standalone, and references to external AS2.0 classes are ignored.
-
true
- All scripts inside input RVML movies are analyzed for references to external AS2.0 classes. These classes are loaded as necessary and included in SWF movies.
|
Default Value |
true |
11.3.6.1.2
kinesis.actionscript.useMetadata
KineticFusion supports the definition of metadata for classes and class members. This enables
additional constraints to be defined that implement concepts not supported in ActionScript such as 'final' abstract' and 'const'. This functionality is implemented using Javadoc
comments that precede each class or class member declaration.
When this option is disabled, all defined metadata is ignored and not included in any semantic analysis.
As metadata is only used to enforce constraints this will have no negative impact on compiling code however
it is recommended that this option only be disabled for production environments or when it is
suspected that metadata is being interpreted incorrectly. The application must be restarted when this
property is changed.
Value Type |
Boolean |
|
-
false
- No ActionScript class metadata will be parsed or used during semantic analysis
-
true
- All defined ActionScript metadata will be used during semantic analysis
|
Default Value |
true |
11.3.6.1.3
kinesis.actionscript.enableWarningMessages
The KineticFusion compiler performs a detailed semantic
analysis of all AS2.0 code. While the number of warning
messages may appear overwhelming, each warning messages
indicates the location of a possible error condition in the
associated ActionScript code. While it is recommended that
warning messages be disabled individually, should the
warning be unwarranted, it is also possible to suppressed
all generated warning messages. When this property is
enabled, only messages configured as Errors will be reported
to the user. This property should only be disabled for
production systems which may speed compilation. For
development systems it is recommended that warning messages
be disabled only within a given RVML document or
individually using the ErrorConfiguration.properties file.
Otherwise legitimate warnings may be suppressed.
Value Type |
Boolean |
|
-
false
- No warning level messages will be output for all AS2.0 script compilations.
-
true
- All warning messages for classes on any of the user class paths will be generated.
|
Default Value |
false |
11.3.6.1.4
kinesis.actionscript.includePath
It is possible to include external source files into any
internal or external ActionScript script using the #include
directive. This property indicates the root paths used to
try and locate all referenced include files. All path
components must be separated with a semicolon. Relative
include locations are only permitted from within included
files, not directly within the RVML document e.g.
'../include/includeMe.as' will only use the include paths to
look up the AS file location, not relative to the RVML file
itself. When a nested include directive is encountered in an
external ActionScript file, the compiler will first search
from the location of the referencing ActionScript file
before searching the include path.
Value Type |
String containing one or more directories, each separated by
a semicolon
|
Default Value |
The application CLASSPATH. |
11.3.6.1.5
kinesis.actionscript.logCachedClasses
When KineticFusion compiles a class, it stores the class and
all dependency information in an in-core class cache. When a
reference is made to a class, the cache is first checked to
see if an already compiled class definition exists is
current. A cached copy of a class is used for subsequent
documents providing the class itself and all of its
dependencies have not changed. When analyzing dependencies,
only interface changes in a dependent class trigger an
automatic recompilation of a cached class. When this option
is enabled, all class references that are served by cached
classed are logged to the console. This option may be useful
in a development environment but should be disabled in
production environments.
Value Type |
Boolean |
|
-
false
- No logging of classes retrieved from the application class cache is carried out.
-
true
- All references to AS2.0 classes that are retrieved from the application class cache are logged.
|
Default Value |
false |
11.3.6.1.6
kinesis.actionscript.logParsedClasses
When a reference is found to an ActionScript class, the
application class cache is firstly check to see if a current
definition for class already exists. If the class does not
exist in the cache or is not current, then the class is
loaded from its ActionScript source. When this option is
enabled, all class references that are compiled from
ActionScript source are logged to the console. This option
may be useful in a development environment but should be
disabled in production environments.
Value Type |
Boolean |
|
-
false
- No logging of parsed classes is carried out.
-
true
- All classes that are compiled, or recompiled, from source will be logged
|
Default Value |
false |
11.3.6.1.7
kinesis.actionscript.packagesAreStable
When KineticFusion searches for ActionScript class
references it scans all defined class paths for ActionScript
files to build up a list of potentially valid class
definitions. When this property is true, then the class path
scan procedure is only performed once, and all discovered
package hierarchies are cached for future use. This will
speed up the compilation process as any external
ActionScript class path is only checked once. However, when
a user creates a new ActionScript class, it will not be
discovered by the KineticFusion compiler without restarting
the application. When this property is false, the class
paths are scanned every time an RVML document is processed.
It is recommended that this property is set to true for
production systems.
Value Type |
Boolean |
|
-
false
- Available classes are discovered before analysis of each RVML document referencing AS2.0 classes.
-
true
- All possible class files are discovered when a class path is first referenced. The creation of new class files will not be picked up by the compiler.
|
Default Value |
false |
11.3.6.1.8
kinesis.actionscript.slashIDSupport
Slash notation was used for identifying symbols such as
movie clips and buttons in the Flash 4 player. All symbols
were identified by a full path using notation very similar
to that used in navigating directory hierarchies. The root
timeline was identified by '/', a symbol 'x' placed on the
root timeline was identified by '/x' and a property of the
symbol 'x' identified by '/x:property'. The current 'dot'
notation superseded this notation in the Flash 5 player, and
this notation is no longer used for most purposes. However,
SWF movies containing Slash notation can be successfully
decompiled, and it will be necessary to enable this property
to recompile the RVML. Slash notation is forbidden in
ActionScript 2.0 as the syntax 'a:b' is ambiguous, and when
compiling a movie with an SWF version of seven or higher.
An additional constraint when Slash
notation is enabled is that a space is mandatory after all
colons within conditional expressions to avoid ambiguity.
All in all, it is recommended to disable this property
unless slash notation support is absolutely necessary.
Value Type |
Boolean |
|
-
false
- Slash Identifier support in ActionScript is not supported on RVML input
-
true
- All Slash Identifier constructs are correctly parsed as normal identifiers.
|
Default Value |
false |
11.3.6.1.9
kinesis.actionscript.systemClassPath
This property defines the location for intrinsic classes and
optional component classes referenced in RVML documents or
by the Class Analyzer. Analysis and compilation of classes
located on this path are treated differently than those on
the user class path. The key differences are:
-
The package names "System" and "TextField" are
permitted on this class path. These packages share
the same name as classes and this is forbidden by
the KineticFusion compiler. However, since these
classes and packages are intrinsic and defined
within the player, they are permitted.
-
All compilation warnings for classes on the system
class path are discarded. This is extremely useful
when working with class hierarchies from 3rd
parties. As it is expected that these hierarchies
are tested and stable then warning messages are
disabled. This permits a development group to
implement coding standards that may conflict with
those of 3rd parties. The system class path is a
good location to place the V2 component classes, if
they are used by the user.
The installation classes directory contains a set of
intrinsic class definitions shipped with KineticFusion. On
installation, the systemClassPath property in the
config/KineticFusion.properties file is set to this
directory. Multiple class path elements can be defined on the system path: they must be separated by a semicolon character (';'). Note: the System class path is searched AFTER the
user class path so it is possible for a user to override a
system class with a class on the user class path.
If a class path element contains sub-folders of the form FP<Version>
(for example, FP7 or FP8)
then the folders will be interpreted as version-specific class folders
and the contents of the sub-folders will be used for locating classes
depending on the output version.
Value Type |
Single directory location of root of system class hierarchy
|
Default Value |
None |
11.3.6.1.10
kinesis.actionscript.useCachedClasses
When KineticFusion compiles a class, that class is stored in
the application class cache. As long as the cached class is
considered to be current, it will be returned for all future
references to the class. Classes are added to the cache
after successful compilation providing no compilation errors
are found, however all compilations warnings are ignored.
When this property is set to false, then a reference to an
ActionScript class results in the class being compiled from
source. This may be useful when a user wants to see all
compilation warnings generated for a particular RVML
document. When false, then the class cache is used to try
and resolve all class references. It is recommended that
this property is set to true for production systems.
Value Type |
Boolean |
|
-
false
- ActionScript classes are reparsed and warnings regenerated for each RVML document.
-
true
- Class files are not recompiled between RVML documents unless necessary due to the class or its dependencies being modified
|
Default Value |
true |
11.3.6.1.11
kinesis.actionscript.userClassPath
KineticFusion permits compilation of ActionScript classes
referenced in RVML script blocks or using the Class
Analyzer. This property specifies the list of root class
directories to be used for locating all user classes.
Multiple path components can be specified and all path
components must be separated with a semicolon(';'). All classes
parsed from these locations are subject to strict error
reporting (subject to the enableWarningMessages property).
When a class reference is found, each class path component
is searched in the order in which they are defined in the
property value. If a referenced class cannot be found on the
user class path, the system class path is then searched.
If a class path element contains sub-folders of the form FP<Version>
(for example, FP7 or FP8)
then the folders will be interpreted as version-specific class folders
and the contents of the sub-folders will be used for locating classes
depending on the output version. Normally, such a path structure is suitable only for
the intrinsic classes and is only located on the system path.
Value Type |
String containing one or more directories, each separated by
a semicolon
|
Default Value |
None |
11.3.6.2
ActionScript Code Generation Properties
11.3.6.2.1
kinesis.actionscript.logLoadedClasses
It can be unclear, when creating a SWF movie containing
AS2.0 classes, what classes are included in the SWF.
ActionScript classes can reference many other ActionScript
classes and this can result in SWF movies becoming larger
than expected. It is also possible that classes that are
intended to be distributed with the SWF movie are omitted.
When this property is enabled, all classes stored in the
output SWF movie are listed on the console in the order in
which they will be created.This is useful to verify that all
desired classes are loaded and to verify the load order of
specific classes. If a dynamic reference to a class is
required that affects the load order, this can be specified
with the IncludeClass element in RVML. This option can be
useful in a development environment but should be disabled
in production environments.
Value Type |
Boolean |
|
-
false
- No logging of used classes is carried out.
-
true
- All AS2.0 classes embedded in an output SWF movie are listed, in the order in which they will be loaded.
|
Default Value |
false |
11.3.6.2.2
kinesis.actionscript.optimizeFunctions
Flash players with a version of 6.0.65 and higher include
new ActionScript optimizations. The effect of these
optimizations are to reduce the invocation time for global
and anonymous functions, and greatly speed up the execution
of functions containing parameters and local variables. In
addition to this speed increase, a side effect of these
optimizations is that resulting SWF movies are smaller in
size. This works primarily by changing local variable
references to quick lookups, removing the variable name and
replacing it with a table index. While there are many
benefits to this, there are a few caveats also:
-
SWFs produced that contain this optimization will
only run on players of Versions 6.0.65 or higher
-
The names of all local variables will be deleted and
will not exist on decompilation
-
Any variable accessed within a With block cannot be
optimized
-
No block containing an eval statement within the
block or child block (e.g. a function within a
function) can not have its variables optimized since
the variable names may be required by the eval
statement at runtime. If eval statements are used,
but only reference global variables then it is a
good idea to add a new eval() method to the String
prototype or reference a global function that
performs the eval operation instead.
Value Type |
Boolean |
|
-
false
- No optimization of ActionScript is carried out.
-
true
- All ActionScript functions will be analyzed and qualifying functions will be compressed using new optimization techniques supported in Flash Player Version 6.0.65 and higher.
|
Default Value |
false |
11.3.6.2.3
kinesis.actionscript.removeTraceStatements
Trace function calls are frequently used for debugging
scripts. The trace() function is a native function and it
normally used to print statements to a debugger, during
development. Rather than remove all trace statements
manually, it is possible for KineticFusion to remove all
trace() function calls from generated code. This will
increase both execution speed and reduce the output movie
size. Removing trace statements may have side-effects
however, as the expression passed as an argument to the
function is also discarded e.g.
i=0;
while( i < 10)
trace( i++); // discarded so loop becomes infinite
These side effects can also be useful as the trace()
function can be used to embed enhanced debugging calls
during development, and these can be stripped out
automatically on production e.g.
trace(myLocalConnection.printValue( value));
Value Type |
Boolean |
|
-
false
- All trace() functions are output by the compiler
-
true
- All trace() function calls and their arguments are removed by the compiler
|
Default Value |
false |
11.3.6.2.4
kinesis.actionscript.replaceTraceStatements
Trace function calls are frequently used for debugging
scripts. The trace() function is restricted to the
Macromedia Flash development environment and trace
output cannot normally be caught from a running SWF
movie. Thankfully there are a growing number of
powerful third-party logging components and debugging
tools available that provide superior functionality.
This property specifies an ActionScript code fragment
that is used to replace all trace() statements at
compile-time. The code fragment is normally a single
line of code but it can also contain multiple statements
separated by semicolons.
In order to ensure that this feature is fully compatible
with the Macromedia compiler, the trace statement that
is replaced is case-insensitive and must have a single
argument.
The script fragment used to replace the trace statements
supports placeholder identifiers so that the specified
logging script can receive all expected parameters. The
following placeholder identifiers are currently
supported:
- __ARG
- The single argument to the original trace
statement
-
__CLASS
- The name of the class containing the trace
statement. This is a String constant.
-
__METHOD
- The name of the class method containing
the trace statement. This is a String constant.
-
__FILE
- The name of the file containing the trace
statement. This is a string constant.
-
__LINE
- The line on which the trace
statement was defined. This is a numeric constant.
For example, to replace all trace() calls to call to a
static method if a logging class, the trace statement
could be represented as:
com.kinesis.Trace.log(__ARG, __METHOD, __CLASS);
Care should be taken that the code that performs the
tracing functionality does not, itself, contain a
trace() statement as this can cause an infinite loop.
Developers have a choice of how they wish to continue to add tracing statements to
an application. Our recommendation is to continue to use the trace() method as trace statements can
be completely removed from an output SWF using the kinesis.actionscript.removeTraceStatements
configuration option. By continuing to use trace statements,
different logging frameworks can be plugged in and out of your
SWF application without changing a single line of code.
Value Type |
String |
Default Value |
none |
11.3.6.2.5
kinesis.actionscript.setterReturnsValue
ActionScript classes provide for class properties that are
defined as methods using additional get/set qualifiers.
KineticFusion correctly translates these methods to
properties however there are two different conventions for
the implementation of the 'setter' method. Classes compiled
using the Macromedia compiler add an additional automatic
invocation of the 'get' method of a property at the end of
the 'set' method. Hence, every time a property is set, the
'get' method is also called. While it may be envisioned that
this is necessary for expressions in which the property is
used in an assignment chain( e.g. var = property = value;),
in practice the 'value' expression is the expression passed
back to all assignees.
KineticFusion, by default does not return the value from an
assignment to a property. As a result, property accessors
execute quicker and display more intuitive behavior. This
property can be enabled, however, for code that depends on
this feature. Note: it may be necessary to enable this
property should the 'get' property methods of a class be
required to exhibit similar behavior under multiple
ActionScript compilers.
Value Type |
Boolean |
|
-
false
- No AS2.0 'set' property methods will have an implicit return value generated.
-
true
- At the end of each 'set' property method, an implicit call is made to the 'get' method for the property.
|
Default Value |
false |
11.3.6.2.6
kinesis.actionscript.warnBlockSize
The is an implicit restriction of 32765 bytes on the size of the executable code within an ActionScript class. This limit is due to a restriction on the implementation of classes within the Macromedia compiler - while it is possible to get around this restriction, it would mean that classes would only compile with KineticFusion so we have chosen to also enforce the restriction. The 32K limit includes all embedded String constants but it does not include any String constant tables. This can make it difficult for a developer to know when the class size is approaching the 32K limit.
This option defines a logging threshold for the number of
executable bytes that are permitted in any ActionScript block (including inline RVML blocks). When the number of generated bytes exceed the specified value, a log message is output specifying the name of the class (or location of the block) and the actual size of the generated bytecode. This can be used as an early indicator to refactor ActionScript classes. The threshold does not include the size of the String constant table which can have an independent size of 64K for each block.
It is possible to get the size of all output blocks by setting the value of this property to some low number e.g. 1. This will then print out the size of all ActionScript bytecode blocks as they are being generated.
Note that when the 32K limit is exceeded, KineticFusion will automatically perform additional space optimization on embedded String constants which will generally provide several thousand more bytes of breathing space - this will be logged on the KineticFusion console and it is highly recommended that classes are refactored at this stage.
Value Type |
Integer |
|
-
0
- No threshold monitoring is performed
-
> 0
- The threshold number of generated 'executable' bytes after which logging occurs
|
Default Value |
0 |
11.3.7
Component Properties
11.3.7.1
kinesis.components.path
KineticFusion is able to include SWC components in both
compilation and decompilation without having to specify the
entire component as RVML. This configuration property can be
used to specify one or more folders in which to look for
referenced SWC components. The path can be a compound path
with each path component separated by a semicolon.
Once the paths are defined KineticFusion will automatically
search the specified folders and all sub-folders for SWC
files. During decompilation, the specified paths are used to
identify components whose assets can be removed from the
output RVML document, if the
kinesis.components.resolve
property is set.
Value Type |
String containing one or more directories, each separated by
a semicolon
|
Default Value |
None |
11.3.7.2
kinesis.components.resolve
SWC components, when represented in RVML, can needlessly
complicate RVML output, adding all the symbol definitions
and resources to the output RVML. When this property is set
to true, all defined components on the component path (see
the
kinesis.components.path
property) are retrieved and the input SWF is automatically
checked for each component. Each discovered component is
automatically removed from the RVML output and replaced
instead with a short Component element that specifies that
the component should be included in the SWF on compilation.
It should only be necessary to include SWC components in
RVML output if a developer does not have access to SWC
component archives or wishes to modify the component or its
assets in some way.
Value Type |
Boolean |
|
-
false
- The RVML is output containing all embedded SWC component assets and symbols
-
true
- The RVML is output with only placeholders for SWC components and all associated symbols and assets are stripped from the RVML
|
Default Value |
false |
11.3.7.3
kinesis.components.logMissingAssets
KineticFusion will only resolve embedded components from an
SWF if it can ensure that all the contents of the component
exist within the SWF. This ensures that SWFs containing
symbols with the same name as components are not
accidentally identified as components and removed. However,
should the assets associated with an external component be
augmented since the component was added to the SWF,
KineticFusion will not be able to fully identify the
component. When this option is enabled, KineticFusion will
log all the required symbols in the component that do not
exist in the SWF. If the developer know that the component
is the correct component, then these logged assets can be
added to the
kinesis.components.ignoreAssets
property to resolve the component regardless.
Value Type |
Boolean |
|
-
false
- Components that cannot be fully identified are ignored
-
true
- All missing assets of potential components are logged
|
Default Value |
false |
11.3.7.4
kinesis.components.ignoreAssets
KineticFusion will only extract embedded components from an
SWF if it can ensure that all the contents of the component
exist within the SWF. If a component has been upgraded since
the SWF was originally created then the assets in the
component may not match the assets stored in the SWF. In
this case, it is still desirable that the component be
identified and resolved so that the RVML will reference the
most up-to-date component on compilation. This property
defines a list of space-separated or comma-separated names
representing assets that are not required within an SWF in
order to resolve embedded components. This option is only
applicable if
kinesis.components.logMissingAssets
option, used to retrieve the list of missing assets, is
enabled.
Value Type |
String containing one or more asset names separated by comma
or space characters
|
Default Value |
None |
11.3.8
Datasource Properties
11.3.8.1
kinesis.datasources.globalLocation
KineticFusion is able to include dynamic data from external
datasources when compiling RVML. Each RVML document can have
any number of datasources defined within it however it is
also possible to define a single global datasource for the
application. The values defined in this datasource are
available to all RVML documents compiled by the application.
It can be used to define global paths, dimensions, colors,
or any other arbitrary data that can be referenced within
RVML either within attribute expressions (using the syntax
${expression}) or Template elements.
The global datasource is a Java properties document
containing data in the form dotted_name=value.
This property defines the location of the global datasource,
and is specified as either an absolute file name or URL. The
type of the location defaults to 'File' but this can be
changed with the
kinesis.datasources.globalType
property.
Value Type |
String representing a single file or URL
|
Default Value |
None |
11.3.8.2
kinesis.datasources.globalType
KineticFusion is able to include dynamic data from external
datasources when compiling RVML. The location of the global
datasource is specified using the
kinesis.datasources.globalLocation
property. By default, this property references a file but
this property can be used to change the interpretation of
the location to a URL
Value Type |
String |
|
-
File
- The specified location should be interpreted as a file
-
URL
- The specified location should be interpreted as a URL
|
Default Value |
File |
11.3.9
Template Properties
11.3.9.1
kinesis.templates.templateRoot
RVML can be created dynamically when processing an RVML
document by using templates. By default, KineticFusion
automatically supports the FreeMarker templating language.
When Template elements are found within an RVML document,
they can be defined either inline or taken from an external
template file.
When external template files are used, the location
specified on the Template element is relative to the
template root folder as specified by this property. All
templates used in RVML processing must reside under this
folder and the system will not permit file addresses outside
this location. This property is ignored for Template
locations specified as URLs.
Value Type |
String representing a single folder under containing all
template files
|
Default Value |
The startup folder for the application, as identified by the
user.dir property (the value of this can be displayed, when
running the GUI, in the Help->About KineticFusion->System
tab).
|
11.3.9.2
kinesis.templates.defaultEncoding
When an external template file is being loaded for processing,
it is important to know the encoding of the template. Where
an encoding is not explicitly specified in RVML for a
particular template, the value of this property is used to
specify the encoding of the template. It will default to the
standard Latin encoding unless explicitly specified.
Value Type |
Encoding String |
Default Value |
ISO-8859-1 |
11.3.9.3
kinesis.templates.defaultLocale
Some of the template operations require the outputting of
text, numeric and date information. The default locale of
the application is used to format these strings in
accordance with rules specified by the output operations. A
specific locale can be specified for each template specified
in an RVML document. When no locale information is
specified, this property is used to define the locale of the
template.
Value Type |
Locale String |
Default Value |
Default application locale |
11.3.9.4
kinesis.templates.logOutput
Templates can be used to generate complex RVML or text. To
aid in the debugging of these blocks, KineticFusion can log
the output of a template before further processing. In this
way, the developer can see the result of the template
execution.
Value Type |
Boolean |
|
-
false
- The template output is not logged but passed direvctly to KineticFusion to process
-
true
- The template output is logged in addition to being passed to KineticFusion for processing
|
Default Value |
false |
11.3.10
Tag Library Properties
11.3.10.1
kinesis.xml.tagLibraryConfigFile
KineticFusion is able to process RVML documents that include
XML tags from namespaces other than the default RVML
namespace. This enables developers to create handlers to
perform application-specific functionality that may not be
straightforward in standard RVMl, or to support other XML
dialects embedded inside an RVML document. Handlers for a
single namespace are generally packaged into a single
location or jar, and the namespace and factory class for the
namespace defined in the Tag Libraries configuration file.
This property defines the location of the configuration file
to use to resolve external tag libraries.
Value Type |
String representing a single file |
Default Value |
None |
Copyright 2003-2005 Kinesis Software. All rights reserved.