upCast 7.0.0 Build 1200
Release date: 2008-08-06
Note on this release
This version will be the last public preview version. It is considered to be essentially feature-complete and we're now starting beta-test.
New
- Add menu item to view Java API documentation to Help menu
- Implement standard way to override GUI module parameters by calculated ones. This is necessary to
programmatically set module parameters e.g. from Simple UI settings, even though in the modules, they
need to be set using UI widgets.
We should use UPL for this, and allow writing values to the $module:... namespace. This relieves us from the cumbersome workaround to call a module to be parameterized using the UPL processor with a previous "Copy as UPL" of the respective module. - Introduce new, special ${taskbase} local variable for Ant <source> element code generation. ${taskbase} is resolved to the upCast-resolved, written value of the task element's basedir attribute.
- Implement native ZIP file creation support in UPL
- New pipeline parameter property "initialize-when" with values
never | unset | always | <string>
Lets you control how and when a sub-pipeline overrides and/or sets its own current parameter values into any passed set of pipeline variables. - two new actions for markup-regex() and markup-style():
- replace-shallow(...well-formed XML fragment...):
groups like group-shallow, then replaces the matching character content with the specified XML fragment - replace-deep(...well-formed XML fragment...):
groups like group-deep, then replaces the matching character content with the specified XML fragment
- replace-shallow(...well-formed XML fragment...):
- images: support min/max-width, min/max-height properties to limit picture sizes without constraining smaller (max-...) or bigger (min-...) images.
- new function: clear-log-messages( ID realm ) as Void. Clears any collected log messages of the Log Event Collector in the specified realm, i.e. "pipeline", "module" or a custom logger's name (Id).
Changes/Improvements
- The internal Namespace Manager now uses recommended namespace prefixes for particular, known namespaces like the upCast internal namespace, realm namespaces, and css property attributes namespaces like uci, pipeline, module, css, csso etc.
- <pageheader/> and <pagefooter/> now also allowed as <section/> children
- The external pipeline processor no longer sets the indeterminate progress bar
- Remove "Advertise" parameter from RTF Importer. It makes no longer sense or can even lead to
unexpected behaviour when not set deliberately. Since it is set to on by default, this is certainly a source of
confusion.
The parameter originates in a time where the pipeline variables concept (and being able to set them anywhere in a pipeline using the Pipeline Variables module) was not yet born. With this concept now in place and being heavily used, the functionality behind this parameter is now superfluous - hence the decision for removal. - ucdoc file format has changed due to renaming the XML Exporter's class ID from "xmlraw" to "xmlexport". Old files are converted automatically, but you must update any calls to run-module() manually.
- We now show a dialog when we cannot load a ucdoc
- Added documentation to UPL spec for: filter-attrs(), clear-log-messages(), current-dateTime(), format-dateTime(), create-zipfile(), add-to-zipfile()
- We need to precisely define how the various modes of pipeline variable setting/sharing, the definitions
for sub-pipeline parameters, and the persistent/default pipeline parameter setting of the called
pipeline interact.
We therefore define the algorithm thusly:
- For each of the defined pl-variable setting/sharing modes "separate", "copy" and "share", create/copy the pipeline variables as specified.
- Then, set (by overriding, if required) any specified sub-pipeline variable settings.
- Finally, check each of the pipeline parameter definitions in the called pipeline as follows:
- If the value is persistent, AND no pipeline variable by that name exists, set that variable to the stored persistent value.
- If the value is not persistent, but a default value is specified, AND no pipeline variable by that name exists, set that variable to the stored persistent value.
- If the value is neither persistent nor has a default value, do nothing.
- Now, just before accessing the WordLink for the first time in either module, RTFI or RTFE, the WordLink is re-established, which lets the module pick up any il-gw.exe location property change that a preceding UPL processor may have set.
- Simple UI: store internal-value persistently in ucdoc (not: displayed value).
- RTF Exporter: Table rendering improvements
- UPL parser error messages now considered "FATAL"
- updated docs for markup-style() and markup-regex()
- Changed the handling of module termination: A module termination listener now listens directly on the
log event source when module termination is set to one of FATAL, ERROR or WARN and remembers in a
flag when such a message was generated during module execution. This allows to still react e.g. on
ERROR log events by terminating further execution, even if the module's log event collector does not
collect ERROR messages (or any messages at all).
Only when termination is determined by a custom UPL function, the user must make sure that any log messages he wants to query are actually collected in the module by setting the module's Log level setting appropriately. - changed default code for XML Exporter's attribute filtering to include specific handling for
part
element - improvements to list handling, perofmrnace improvements for document with many lists
Fixes
- Add description of new "internal-values" property for simple UI popup element
- fix pagebreak handling in code like
<pagebreak /></part><part><pageheader><par>
... - progress bar flickers during calc'ing final property values in RTF Exporter
- changed upCast DTD files to be no longer dependent on DTD modules being at specific locations on the W3C site
- RTF Exporter: borders in complex table are not rendered properly
- After saving a generated RTF, inner table borders show when re-opening RTF, even when they are hidden in the originally generated RTF.
- Ant export fails without error when variable cannot be resolved.
- Cannot close log window when in "logfile display"-mode (NPE).
- fix several instances of possible NPEs being thrown with handling of qualified names
- Logging: source ucdoc displayed for log messages not correct when within sub-workflows.
- get-log-messages(module, ...) does not work in Validator module
- Eval license warning on first pipeline run even when the pipeline uses full license (but global license is eval license). We only may show the warning for a pipeline that actually uses the global license.
- Pipeline Parameters were always stored in ucdoc, regardless of "persistent" setting.
- Cannot set javaproperty realm values with set-realm-value().
- License path: do not clear path on tabbing out, even when the license path is invalid at that time
- Simple UI: "Reset persistent values" must take into account that "default" holds internal-values (not displayed values).
- Creating an input stream in InputProxy from a folder URL now fails. It delivered a directory listing as ASCII text previously.
- Documentation: UPL, paint-following/preceding: Links to other functions in Note broken
- "Stop" button does only work in outer pipeline, but not when sub-pipelines are executed.
- Simple UI: single textfield only gets centered in minimal size. Should extend to full window size.
- CSS reading: Paragraph hyphenation state (word-break-inside) for styles wrongly imported (fallback "as document" does not work at stylesheet reading time since that value has not yet been read at that point).
- Regression: file format converter none->v1 buggy due to inadvertant refactoring usage. Also added missing "rtf" -> "rtfimport" translation.
- Crash in setSimpleUIDefaultPipelineParameters() when param name is null, which can happen for information-only text items in the simple UI.
- upCast variable resolver: doubling '$' in text to disable var recognition does not suffice when we now try to resolve variables recursively. The first time we encounter $$ we minimize it to $, which in a second round then gets resolved nevertheless. Fixed by resolving variables recursively.