Develop and Download Open Source Software

Browse CVS Repository

Contents of /openlaszlo/docs/changelog.html

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.1.1 - (show annotations) (download) (as text) (vendor branch)
Wed Dec 7 16:31:33 2005 UTC (18 years, 4 months ago) by togawamanabu
Branch: MAIN, docs
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/html
import docs    

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
2 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
3 * Copyright 2001-2005 Laszlo Systems, Inc. All Rights Reserved. *
4 * Use is subject to license terms. *
5 * X_LZ_COPYRIGHT_END ****************************************************** -->
6 <html>
7 <head>
8 <title>OpenLaszlo 3.1 Change Log</title>
9 <meta http-equiv="Content-Type"
10 content="text/html; charset=iso-8859-1">
11 <link rel="stylesheet" href="../lps/includes/explore.css" type="text/css">
12 <link rel="SHORTCUT ICON"
13 href="http://www.laszlosystems.com/images/laszlo.ico">
14 </head>
15 <body class="release-notes">
16 <h1><b>
17 Change Log for OpenLaszlo 3.1</b> </h1>
18 <p class="bodytext">
19 This document describes the past version changes in the OpenLaszlo Server (or Laszlo Presentation Server, "LPS"). Please see the <a href="release-notes.html">release notes</a> for information regarding the current release.</p>
20 <ul>
21 <li>Changes in:
22 <ul>
23 <li><a href="#Changes3.1">3.1</a></li>
24 <li><a href="#Changes3.0.1">3.0.2</a></li>
25 <li><a href="#Changes3.0">3.0.1</a></li>
26 <li><a href="#Changes2.2.1">3.0</a></li>
27 <li><a href="#Changes2.2">2.2.1</a></li>
28 <li><a href="#Changes2.1.3">2.2</a></li>
29 <li><a href="#Changes2.1.2">2.1.3</a></li>
30 <li><a href="#Changes2.1.1">2.1.2</a></li>
31 <li><a href="#Changes2.1">2.1.1</a></li>
32 <li><a href="#Changes2.0">2.1</a></li>
33 <li><a href="#Changes2.0B2">2.0 Preview</a></li>
34 <li><a href="#Changes2.0B1">2.0 Beta2</a></li>
35 <li><a href="#Changes1.0.3">2.0 Beta1</a></li>
36 <li><a href="#Changes1.0.2">1.0.3</a></li>
37 <li><a href="#Changes1.0.1">1.0.2</a></li>
38 <li><a href="#Changes">1.0.1</a></li>
39 </ul>
40 </li>
41 <li>Defects fixed in:
42 <ul>
43 <li><a href="#Defects3.1">3.1</a></li>
44 <li><a href="#Defects3.0.1">3.0.2</a></li>
45 <li><a href="#Defects3.0">3.0.1</a></li>
46 <li><a href="#Defects2.2.1">3.0</a></li>
47 <li><a href="#Defects2.2">2.2.1</a></li>
48 <li><a href="#Defects2.1.3">2.2</a></li>
49 <li><a href="#Defects2.1.2">2.1.3</a></li>
50 <li><a href="#Defects2.1.1">2.1.2</a></li>
51 <li><a href="#Defects2.1">2.1.1</a></li>
52 <li><a href="#Defects2.0">2.1</a></li>
53 <li><a href="#Defects1.0.3">2.0</a></li>
54 <li><a href="#Defects1.0.2">1.0.3</a></li>
55 <li><a href="#Defects1.0.1">1.0.2</a></li>
56 <li><a href="#Defects">1.0.1</a></li>
57 </ul>
58 </li>
59 </ul>
60 <h1><a name="Changes3.1">Changes in 3.1<br>
61 </a></h1>
62 <a name="key-features">New Features since OpenLaszlo 3.0.2</a></h1>
63 <ul>
64 <li>Charting and Graphing Components</li>
65 <li>Flash 8 file generation</li>
66 <li>XMLHttpRequest ("ajax") API</li>
67 <li>Rich Text Class</li>
68 <li>New components: hbox, vbox, and image</li>
69 <li>Local datasets</li>
70 <li>Applications default to window size</li>
71 <li>"View source" menu item</li>
72 <li>Browser history integration: the default HTML wrappers now include support for browser history and setcanvasAttribute()</li>
73 <li>setcanvasAttribute() Javascript function can optionally add browser history events</li>
74 <li>Tutorial introduction to Drawview</li>
75 <li>Version detection</li>
76 <li>Developer console enhancements</li>
77 <li>Global "hand cursor" parameter</li>
78 <li>Backtrace facility in the debugger</li>
79 <li>Other debugger improvements</li>
80 <li>Splash screen takes percentages</li>
81 <li>New goodies in the incubator</li>
82 </ul>
83
84 <h1><a name="Changes3.0.1">Changes in 3.0.2<br>
85 </a></h1>
86 <ul>
87 <li>OpenLaszlo 3.0.2 is a maintenance release only. See <a href="#Defects3.0.1">Fixed Defects</a> section for details.</li>
88 </ul>
89
90 <h1><a name="Changes3.0">Changes in 3.0.1<br>
91 </a></h1>
92 <ul>
93 <li>OpenLaszlo 3.0.1 is a maintenance release only. See <a href="#Defects3.0">Fixed Defects</a> section for details.</li>
94 </ul>
95
96 <h1><a name="Changes2.2.1">Changes in 3.0<br>
97 </a></h1>
98 <ul>
99
100 <h1><a name="key-features">Key New Features</a></h1>
101 <p>LPS 3.0 introduces several new features:</p>
102
103 <ul>
104 <li>SOLO deployment</li>
105 <li>Smaller file sizes (using internal gzip compression)</li>
106 <li>Dynamic libraries</li>
107 <li>Unicode support</li>
108 <li>Optimized for Flash Player versions 6 and 7</li>
109 <li>Settable timeouts</li>
110 <li>Drawing API</li>
111 <li>Client fonts</li>
112 <li>Resizeable canvas</li>
113 <li>Integration with browser JavaScript</li>
114 <li>Support for browser back button</li>
115 <li>Support for ("right click") context menu</li>
116 <li>Support for mouse wheel</li>
117 <li>Text maxlength and restriction</li>
118 <li>Debugging improvements</li>
119 <li>Performance enhancements</li>
120 <li>Separate Designer and Deployer guides</li>
121 <li>The name of the product is now "OpenLaszlo"</li>
122 </ul>
123 <p>
124 Most of the new features are described in the product documentation. For others (timeouts, fonts) these notes constitute the primary documentation.
125 </p>
126
127
128 <h2>SOLO Deployment</h2>
129 <p>
130 Laszlo applications can be made available on the web, or <i>deployed</i> in either of two ways:
131 </p>
132 <p>
133 <ol>
134 <li>Deploy SOLO (Standalone OpenLaszlo Output) from any HTTP Web server</li>
135 <li>Deploy with OpenLaszlo Server</li>
136 </ol>
137 <p>
138 With SOLO deployment, the LZX source is pre-compiled into a stand-alone SWF
139 file that can be placed within the HTML docs directory of a common HTTP Web
140 Server (such as Apache or IIS). SOLO deployments are simple to manage, and
141 supported by nearly any Web hosting service. </p>
142 <p>
143 With SOLO deployment, the OpenLaszlo Server is not required for operation of the application (although the Server is
144 required for developing the application).
145 </p>
146 <p>
147 With OpenLaszlo Server deployment, the LZX source is placed within the
148 Web-apps directory of the OpenLaszlo Server, and is dynamically compiled.
149 OpenLaszlo Server deployment requires a Java Application Server or servlet
150 container. It provides additional capabilities dependent on the server,
151 including support for SOAP, XML-RPC, Java-RPC and persistent connections.
152 The OpenLaszlo Server is also required for applications that use some media formats that are not
153 natively supported by the Flash player. The OpenLaszlo sever transcodes these media files "on the fly"
154 into formats supported by the Flash player.
155 </p>
156 <p>
157 See the "Proxied and Solo Applications" chapter of the Developer's Guide for more information.
158 </p>
159 <h2>Internal compression</h2>
160 <p>
161 The compiler now employs internal gzip compression. This results in substantially smaller object file sizes.
162 </p>
163 <h2>Dynamic Libraries</h2>
164
165 <p>
166 A dynamic library is a portion of a program that can be loaded after the main application execution file has loaded. The goal for dynamic
167 libraries is to reduce the initial download size of a Laszlo application. This is important because initial download size (including all
168 requests that precede initial user interaction) is used to evaluate web applications. Reducing the initial download size has
169 the additional benefits of reducing the time to first interaction (although there are other ways of doing this), and of reducing
170 bandwidth costs in the case where an optional feature of the application is not used.
171 </p>
172 <p>
173 See the Program Structure chapter of the Software Developer's Guide for details.
174 </p>
175 <h2>Unicode</h2>
176
177 <p>Unicode fonts such as CJK fonts are now supported in <code>&lt;text&gt;</code> and <code>&lt;inputtext&gt;</code> fields. Unicode is supported:</p>
178 <ul>
179 <li>In Laszlo source files. The text in a <code>&lt;text&gt;</code> and <code>&lt;inputtext&gt;</code> tag and within string literals in JavaScript code may be unicode</li>
180 <li>In the user interface. Text and Inputtext views can display unicode text, and take unicode input.</li>
181 <li>In the data compiler. XML data that is compiled into an application, or request at runtime, may contain unicode text, if the XML source file uses the <code>encoding</code> attribute to the XML processing directive (below).</li>
182 </ul>
183
184 <p>The Laszlo components, such as <code>&lt;button&gt;</code>, do not work with unicode fonts. (They are fixed-height, and the default height is incorrect for most fonts.) Only the core classes, <code>&lt;text&gt;</code> and <code>&lt;inputtext&gt;</code>, are automatically sized for unicode fonts.</p>
185
186 <h3>Encoding</h3>
187 <p>By default, LZX now expects text to be UTF-8. You can specify a different
188 encoding within an <code>&lt;?xml?&gt;</code> processing directive at the beginning of an application source file or an XML data file:</p>
189 <pre>
190 &lt;?xml encoding="UTF-16"?&gt;
191 &lt;canvas&gt;&hellip;&lt;/canvas&gt;
192 </pre>
193
194 <pre>
195 &lt;?xml encoding="ISO-8859-1"?&gt;
196 &lt;data&gt;&hellip;&lt;/data&gt;
197 </pre>
198 <h2>Swf6 and Swf7 support</h2>
199 <p>
200 The compiler now outputs, and has been optimized for, swf6 and swf7 binaries. Swf6 is the default;the swf7 target is available as an option.
201 Swf5 format is no longer supported.
202 </p>
203
204 <h2>Settable Timeouts</h2>
205 <p>
206 Settable Timeouts is a mechanism for setting the timeout of a request. There are global settings for data request and media request
207 timeouts, and per-dataset requests.
208 </p>
209 <h3>API</h3>
210 <p>
211 New canvas attributes:
212 </p>
213 <table summary="Canvas Attributes">
214 <tr><th>name</th><th>type</th><th>default</th><th>description</th></tr>
215 <tr>
216 <td><code>dataloadtimeout</code></td>
217 <td>number</td>
218 <td>30000 (30s)</td>
219 <td>timeout time in milliseconds for data requests</td>
220 </tr>
221 <tr>
222 <td><code>medialoadtimeout</code></td>
223 <td>number</td>
224 <td>30000 (30s)</td>
225 <td>timeout time in milliseconds for media requests</td>
226 </tr>
227
228 </table>
229
230 <p>
231
232 <code>dataloadtimeout</code> is the defaults for newly created datasets.
233 Changing it doesn't have an effect on dataasets that already exist.
234 </p>
235 <p>
236 New dataset attribute:
237 </p>
238 <table summary="Canvas Attributes">
239 <tr><th>name</th><th>type</th><th>default</th><th>description</th></tr>
240 <tr>
241 <td><code>dataloadtimeout</code></td>
242 <td>number</td>
243 <td>30000 (30s)</td>
244 <td>timeout time in milliseconds for this dataset</td>
245 </tr>
246
247 </table>
248
249 <p>
250 The timeout time can be changed at runtime, and that will affect any subsequent requests made on behalf of the dataset.
251 </p>
252 <p>
253 </p>
254
255
256 <h2>Drawing API</h2>
257 <p>
258 LZX now includes a subset of the <a href="http://www.whatwg.org/specs/web-apps/current-work/#graphics">WHAT-WG graphics API .</a>
259 </p>
260 <p>
261 A new class DrawView extends <code>LzView.</code> See the LZX Reference Manual for description of this class.
262 </p>
263
264
265
266 <h2>Client fonts</h2>
267 <p>
268 A client font is a font that is located on the client machine. Text that uses client fonts is faster, and avoids the size penalty of an embedded
269 font (a font that is compiled into the application). This is particularly important with CJK fonts, which are many megabytes.</p>
270
271 <p>Previous versions of OpenLaszlo could only use embedded fonts. This release can also use client fonts:</p>
272
273 <p>The value of the font attribute is the name of a font. This may be the name of an embedded font
274 (one that has been declared with the &lt;font&gt; tag), or a client font (one that is available on the client operating system).</p>
275
276 <p>
277 There are three always-defined client fonts, which can be accessed by special names. (These names will probably change prior to the final release.)</p>
278 <ul>
279 <li><code>sans-serif</code></li>
280 <li><code>serif</code></li>
281 <li><code>monospace</code></li>
282 </ul>
283 <!--j
284 <p>
285 See the Developer's Guide, <a href="./guide/fonts.html">Fonts,</a> for details.
286 </p>
287 -->
288 <p>There are also two Japanese fonts, the
289 equivalent of <code>_sans</code> and <code>_serif</code>, whose names can
290 only be written in Unicode.
291 </p>
292 <h2>Resizable Canvas</h2>
293 <p>
294 The canvas width and height can be specified as a percentage (e.g. <code>&lt;canvas width="50%"&gt;</code>).
295 When the canvas dimension are a percentage value, the application is scaled according to the size of the HTML page.
296 In this, <code>onheight</code> and <code>onwidth</code> events on the canvas are generated when embedding HTML page is resized.
297 </p>
298
299 <h2>Communication with browser JavaScript</h2>
300 <p>
301 A new service LzHistory(), and a new JavaScript function LzSetCanvasAttribute(), allow two-way communication between the a Laszlo
302 application and the browser's Javascript engine.
303 </p>
304 You can access the javascript engine in the browser using the loadJS method on LzBrowser:
305 </p>
306 <code>
307 LzBrowser.loadJS(<var>js</var>, <var>target</var>)
308 </code>
309 <p>
310 </p>
311
312 <table summary="Table title">
313 <tr><th>argument</th><th>value</th></tr>
314 <tr>
315 <td><code><var>js</var></code></td>
316 <td>JavaScript string to execute</td>
317 </tr>
318 <tr>
319 <td><code><var>target</var></code></td>
320 <td>Optionally specifies a named frame in which to execute the JavaScript expression.</td>
321 </tr>
322
323 </table>
324 <p>
325 </p>
326
327 <p>
328 By default, the JavasSript expression specified in <code><var>js</var></code> is executed in the current browser frame.
329 </p>
330 <p>
331 See the Browser Integration chapter of the Software Developer's Guide for more information and examples.
332 </p>
333 <h2>Browser Back Button support</h2>
334 <p>
335 The LzHistory mechanism makes it possible for Laslzo applications to capture program states and move among them using the browswer's "back" button.
336 See the "Browser Integration" chapter of the Developer's Guide for details.
337
338 </p>
339
340 <h2>Performance Improvements</h2>
341 <p>Several architectural changes have been made to improve performance:</p>
342
343 <dl>
344 <dt>Register allocation</dt>
345 <dd>The compiler now uses registers. The user-visible effect of this is a significant speed-up in the generated code.</dd>
346 <dt>Clipped views are faster</dt>
347 <dd>Clipping uses swf6 primitives. The user-visible effect is better performance for clipped views.</dd>
348 <dt>Faster compiler</dt>
349 <dd>Assembler now implemented in Java rather than Python. The user-visible effect is that Laszlo apps compile faster.</dd>
350 <dt>Internal file compression</dt>
351 <dd>Application files are compressed internally, regardless of http encoding.
352 This results in smaller transfer sizes on clients that don't accept the gzip encoding, as well as a smaller application size
353 in the browser cache.</dd>
354 <dt>Client fonts</dt>
355 <dd>Text fields that use client fonts are significantly faster than those that use embedded fonts.</dd>
356 <dt>Inlined classes.</dt>
357 <dd>An inlined class is a class that is applied to an instance when an application is compiled, rather than when the application is instantiated. An inlined class has the same semantics as a regular class, except that the class cannot be instantiated or otherwise referred to by name in script code.
358 An inlined class is similar to an inline function, or a macro, in other languages.</dd>
359 </dl>
360 <h2>Text maxlength and restrictions</h2>
361 <p>
362 Text fields have new attributes
363 <p>
364 <pre>
365 <em>maxlength:</em> max number of chars you can add to an text field
366 <em>pattern:</em> whitelist or blacklist of chars that can be added to a text field
367 </pre>
368 <p>
369 which follow the same semantics as the Flash TextField object fields of the same names
370 </p>
371 <h2>Debugging improvements</h2>
372 <p> Inspecting objects is more robust and readable.
373 The size of a string or array is now included as part of its type. This can be useful when deciding whether
374 to inspect a string or array that has been abbreviated (i.e., if you inspect a gigantic string, the debugger
375 will print the full string, which may take a long time.)
376 </p>
377
378 <h2>ECMAScript changes</h2>
379 <p>
380 When it can, the compiler will warn about mis-matched case for JavaScript tokens. This is in anticipation of full ECMAScript compatibility
381 which enforces case-sensitivity.</p>
382
383 <h2>Support for ("right click") context menu</h2>
384 <p>
385 The right click "context" menu is now supported. Documentation forthcoming in the next release. Here is a sample
386 program that demonstrates the API:
387 </p>
388 <pre>
389 &lt;canvas debug="true" width="1800" height="800"&gt;
390 &lt;method event="oninit"&gt;
391 Debug.showInternalProperties = true;
392 &lt;/method&gt;
393
394 &lt;debug x="200" fontsize="14" width="600" height="400"/&gt;
395 &lt;script&gt;
396
397 function rightclick_handler (obj, menuobj) {
398 Debug.write("rightclick context menu", obj, menuobj);
399 }
400
401 function my_itemhandler(obj, item) {
402 Debug.write("menu item selected", obj, item);
403 }
404
405 var cm1 = new ContextMenu(rightclick_handler);
406 cm1.hideBuiltInItems();
407 cm1.addItem(new ContextMenuItem("LZX Canvas Custom Item!", my_itemhandler));
408 canvas.setContextMenu(cm1);
409
410 var cm2 = new ContextMenu(rightclick_handler);
411 cm2.hideBuiltInItems();
412 cm2.addItem(new ContextMenuItem("View Custom Item 1", my_itemhandler));
413 cm2.addItem(new ContextMenuItem("View Custom Item 2", my_itemhandler));
414 cm2.addItem(new ContextMenuItem("View Custom Item 3", my_itemhandler));
415
416
417 var cm3 = new ContextMenu(rightclick_handler);
418 cm3.hideBuiltInItems();
419 cm3.addItem(new ContextMenuItem("Text Custom Item 1", my_itemhandler));
420 cm3.addItem(new ContextMenuItem("Text Custom Item 2", my_itemhandler));
421
422 &lt;/script&gt;
423 &lt;simplelayout/&gt;
424 &lt;text id="foo" fontsize="26"
425 oninit="setContextMenu(cm3)"&gt;FOOBAR&lt;/text&gt;
426 &lt;view id="pp"
427 width="200" height="200" bgcolor="blue"
428 oninit="setContextMenu(cm2)"/&gt;
429 &lt;/canvas&gt;
430
431 </pre>
432
433
434 <h2>Mouse wheel Support</h2>
435 <p>
436 OL 3.0 has an event called LzKeys.onmousewheeldelta. See the Reference Manual.
437 </p>
438 <h2>Documentation restructuring</h2>
439 <p>
440 The Developer's Guide ("Guide to Designing, Developing and Deploying Laszlo Applications") has been trifurcated into Developer's, Designer's and Deployer's Guides
441 in order to
442 tailor information to different audiences.
443 </p>
444 <h2>Name Change: Goodbye "Laszlo Presentation Server", hello "OpenLaszlo Server"</h2>
445 <p>
446 With this release the Laszlo Presentation Server ("LPS") has been renamed the OpenLaszlo Server. Accordingly the
447 "Start Laszlo Presentation Server" menu item and alias has been renamed to "Start OpenLaszlo Server", and similarly for "Stop".
448 The Laszlo Explorer and documentation have been edited to reflect this change, although their are many places where the old
449 nomenclature persists. Over time the documentation and user-visible artifacts will be transitioned to OpenLaszlo, although
450 in the code the LPS terminology is likely to persist indefinitely (for example, in directory names).</p>
451 <h2>Significant Bug Fixes since LPS 2.2</h2>
452 <p>
453 Since 2.2 many bugs have been remedied. Among the more significant:
454 <ul>
455 <li>XML Data from non-English locales no longer generate "unparseable date" errors.</li>
456 <li>Drawing API LzDrawview (added in 3.0b2) is now in the LZX Reference.</li>
457 </ul>
458 <p>
459 See below for a cumulative list.
460 </p>
461
462 <h1><a name="incompatible">Backwards-incompatible Changes in 3.0</a></h1>
463 <p>
464 New functionality in OpenLaszlo 3.0 has necessitated a few backwards-incompatible changes from prior releases.
465 </p>
466 <ul>
467 <li>Default font is client font, not embedded font
468 <ul>
469 <li>The default font is now the client font "verdana". Client fonts cannot be rotated and their opacity cannot be
470 varied. You can change the default by using a &lt;font&gt; on the canvas.
471 </li>
472 </ul>
473 </li>
474 <li>Change in behavior of &lt;font&gt; tag<ul>
475 <li> You cannot mix embedded fonts and device fonts in the same text object. It must be one or the other. This fact subtly changes the behavior of the
476 &lt;font&gt; tag.
477 For example the following program works correctly in earlier releases, but does not in 3.0:
478 <pre>
479 &lt;canvas height="70"&gt;
480 &lt;font name="helmet" src="helmetr.ttf"/&gt;
481 &lt;font name="arioso" src="ariosor.ttf"/&gt;
482 &lt;text fontsize="20"&gt;
483 &lt;font face="helmet"&gt;helmet&lt;/font&gt;
484 &lt;font face="arioso"&gt;arioso&lt;/font&gt;
485 &lt;/text&gt;
486 &lt;/canvas&gt;
487 </pre>
488 <p>
489
490 The "embedfonts" argument to a textfield will specify whether it uses embedded fonts or not.
491 It will also be calculated automatically based on the font in effect on the text object, so for example
492 </p>
493 <pre>
494 &lt;text fontsize="20" font="helmet"&gt;
495 &lt;font face="helmet"&gt;helmet&lt;/font&gt;
496 &lt;font face="arioso"&gt;arioso&lt;/font&gt;
497 &lt;/text&gt;
498 </pre>
499 <p>
500 Would work because it would set set the embed flag implicitly.</p>
501 <p>In the original example, the text clip thinks it is using a device font, because that is what is the "current font" is when it is instantiated.
502 It doesn't look inside and see the embedded fonts used in the HTML, and even if it did, you cannot mix device and embedded fonts in the same text object.
503 </p>
504 <p>
505 To get the expected (2.2) behavior, use
506 </p>
507 <pre>
508
509 &lt;text embedfonts="true"&gt; .
510 </pre>..
511
512 </li>
513 </ul>
514 <li>Case Sensitivity <ul>
515 <li>In earlier versions of LZX, case didn't matter, and now it does.
516 In particular, the normative case for many properties has changed;
517 for example, childNodes -> childnodes, releaseToLayout -> releasetolayout.
518 <p>
519 This has been done for forwards compatability with swf7.
520 </p>
521 <p>
522 Here are some other instances:
523 </p>
524
525 <ul>
526 <li> LzUrl -> LzURL </li>
527 <li> getLoadUrlAsLzUrl -> getLoadURLAsLzURL </li>
528 <li> immediateParent -> immediateparent </li>
529 <li> setXscroll -> setXScroll</li>
530 </ul>
531 </ul>
532 </li>
533 <p></p>
534 <li>Arrays that had been null are now empty<ul>
535 <li><p>When a view is built, <code>subviews[] </code>is initialized to an empty array. In releases before OpenLaszlo 3.0 it was null. If your program
536 depended on testing for null, you will need to modify it --for example, by testing for subviews.length == 0.
537 </li>
538 </ul>
539
540
541 </ul>
542
543 <h1><a name="Changes2.2">Changes in 2.2.1<br>
544 </a></h1>
545 <ul>
546 <li>LPS-2.2.1 is a maintenance release only. See <a href="#Defects2.2">Fixed Defects</a> section for details.</li>
547 </ul>
548
549 <h1><a name="Changes2.1.3">Changes in 2.2<br>
550 </a></h1>
551 <ul>
552 <li><b>LPS no longer supports 1.3 JREs/JDKs.</b></li>
553 <li>LPS requires container support for the 2.3 (or later) version of the servlet specification</li>
554 <li>The provided fonts and components were moved from $LPS_HOME/WEB-INF/lps/{fonts,components} to $LPS_HOME/lps/{fonts,components}.
555 (The default include directories for the compiler were changed to match)</li>
556 <li>The provided includes and assets were moved from $LPS_HOME/{assets,includes} to $LPS_HOME/lps/{assets,includes}.</li>
557 <li>The provided administrator console moved to $LPS_HOME/lps/admin/console.lzx.</li>
558 <li>The default location of the LPS caches and logs moved to $LPS_HOME/WEB-INF/lps/work</li>
559 <li>The <code>?lzrecompile=true</code> can be used to force a recompile when the lps.properties compMgrDependencyOption is set
560 to <code>never</code>.</li>
561 <li>The LPS server statistics now display maximum request times for the 1, 5, and 15 minute periods.</li>
562 <li>The default location of the LPS cache directories is now underneath the web application's WEB-INF directory.</li>
563 <li>There are now separate hscrollbar and vscrollbar components that
564 can be used to minimize application size.</li>
565 <li>Setting width (or height) to null unsets the width (or height).</li>
566 <li>There is a new defaultRequestType lps configuration property (in
567 lps.properties) for controlling the what the LPS does with
568 urls that end in .lzx that don't have an lzt query string.</li>
569 <li>There is a sample deployment configuration provided at WEB-INF/lps/config-deploy.</li>
570
571 </ul>
572 <h1><a name="Changes2.1.2">Changes in 2.1.3<br>
573 </a></h1>
574 <ul>
575 <li>The LPS server statistics now display maximum request times for the 1, 5, and 15 minute periods.</li>
576 </ul>
577 <h1><a name="Changes2.1.1">Changes in 2.1.2<br>
578 </a></h1>
579 <ul>
580 <li>Updated lzx.dtd verified for use with Eclipse</li>
581 <li>LPS-2.1.2 is a maintenance release. See <a href="#Defects2.1.1">Fixed Defects</a> section for details.</li>
582 </ul>
583
584 <h1><a name="Changes2.1">Changes in 2.1.1<br>
585 </a></h1>
586 <ul>
587 <li>LPS-2.1.1 is a maintenance release only. See <a href="#Defects2.1">Fixed Defects</a> section for details.</li>
588 </ul>
589
590 <h1><a name="Changes2.0">Changes in 2.1<br>
591 </a></h1>
592 <ul>
593 <li>New component: <code>grid</code></li>
594 <li>New license key format. Existing 2.0 license keys must be upgraded to 2.1 keys in
595 order for them to work with 2.1. Please contact
596 <a href="mailto:sales@laszlosystems.com">sales@laszlosystems.com</a>.</li>
597 </ul>
598
599 <h1><a name="Changes2.0P">Changes in 2.0<br>
600 </a></h1>
601 <ul>
602 <li>New components: <code>tree</code> and <code>slider</code> </li>
603 <li>New animation tutorial.</li>
604 <li>Faster initial compile of applications that use components.</li>
605 <li>The baseline and some character advances were modified in the
606 default (verity) fonts.
607 If you are porting an application from 2.0p to 2.0 that was laid out
608 pixel-accurately by hand,
609 you may need to re-make adjustments.</li>
610 <li>The compilation cache is now optimized to avoid recompiles when
611 all that is needed is a re-encode (from gzip to uncompressed
612 or vice-versa).</li>
613 </ul>
614
615 <h1><a name="Changes2.0B2">Changes in 2.0 Preview<br>
616 </a></h1>
617 <ul>
618 <li>Developer packages now only include gzip encoded versions of LZX
619 files in the pre-populated cache. This will cause browsers which do not
620 support gzip encoding to compile sample code and will result in slower
621 startup times for the welcome application and other samples.</li>
622 </ul>
623
624 <h1><a name="Changes2.0B1">Changes in 2.0 Beta2<br>
625 </a></h1>
626 <p class="bodytext">
627 The LPS 2.0 Beta2 release also has a limited number of changes that are
628 incompatible
629 with the Beta1 release.</p>
630 <ul>
631 <li>Some components that were released in 2.0 Beta1 have been
632 renamed:
633 <pre> inputtextbox -&gt; edittext<br> baselistcomponent -&gt; baselist<br> baseformcomponent -&gt; baseformitem<br> basedatacomponent -&gt; basevaluecomponent</pre>
634 </li>
635 <li>The "valuedatapath" and "textdatapath" attributes introduced in
636 Beta1 have been removed; simply use "$path" if you want to specify a
637 different datapath for a component's value. For example:
638 <pre> &lt;list&gt;<br> &lt;textlistitem datapath="mydata:/list/item" text="$path{ 'text()' }" value="$path{ '@value' }"/&gt;<br> &lt;/list&gt;<br></pre>
639 </li>
640 <li>There is a new "dataoption" attribute on baselist. You can optimize
641 list or combobox, but setting dataoption="lazy" for lazy replication of
642 list items, or dataoption="pooling" for pooling.</li>
643 <li>The sections below describing changes in 2.0 and bugs fixed since
644 2.0B1 are now complete and accurate.</li>
645 <li>See also the list of <a href="#Defects1.0.3">defects fixed since
646 1.0.3</a>.</li>
647 </ul>
648
649 <h1><a name="Changes1.0.3">Changes in 2.0 Beta1<br>
650 </a></h1>
651 <p class="bodytext">Laszlo Presentation Server 2.0 Beta 1 introduces
652 numerous new features, LZX language changes, and
653 LFC API changes. A limited number of these changes are incompatible
654 with previous releases. </p>
655 <ul>
656 <li>New features:
657 <p> </p>
658 <ul>
659 <li> The Laszlo Component Set <br>
660 Laszlo Presentation Server 2.0 introduces the Laszlo (lz) component
661 set: <code>combobox, edittext, scrollbar, menu, menuitem, tabs,
662 tabslider, radiobutton, radiogroup, checkbox, window, modaldialog,
663 alert, button, form, submit, style</code>, and base classes. To get a
664 feel for what the components do and how to use them, click on the new
665 "Components" tab on the <a href="../../lz-utils/welcome.html">"Welcome"</a>
666 page. These components support keyboard navigation. You can tab between
667 components, and use arrow keys within the components (e.g. within items
668 in a radio group or a list). There are visual focus brackets that shows
669 you where the focus is. <b>Note</b>: The Laszlo (lz) component set is
670 now the default component set. To get the redmond components, insert <code>&lt;include
671 href="redmond"/&gt;</code> into your application source.
672 <p> </p>
673 </li>
674 <li>Krank Optimization
675 <p>Laszlo Presentation Server 2.0 introduces a new feature,
676 called <i>Krank</i>, for optimizing the startup time of an
677 application. Krank allows you, without changing the source code, to
678 construct an application that doesn't need to run any initialization
679 code when it starts. <i>Kranking</i> an application thus can often
680 result in a dramatic improvement in user-perceived startup time.</p>
681 <p>Read more about the Krank feature <a
682 href="guide/krank.html">here</a>.</p>
683 <p> </p>
684 </li>
685 <li>LFC LzTrack service (see reference guide for documentation)
686 <p></p>
687 </li>
688 </ul>
689 </li>
690
691 <li>LFC Data API features:
692 <ul>
693 <li>Support for http POST.</li>
694 <li>XPath attribute predicates [@foo] and <code>[@foo='bar'].</code></li>
695 <li>XPath position() and last() operators.</li>
696 <li>Selection of multiple intermediate nodes (e.g. <code>*/*/*</code>
697 )</li>
698 <li><code>$path</code> bindings for datapath. A node
699 attribute can be bound directly to a data attribute using this syntax:<br>
700 <pre> &lt;attribute name="myattr" value="$path{ somexpath }"&gt;</pre>
701 where somexpath can be a literal xpath or the value of a variable to
702 resolved at init time. This is a two-way binding between the attribute
703 and the data. Setting the attribute by other means will update the
704 data. </li>
705 <li>New LFC classes for runtime XML data access: 3 new
706 classes: LzDataNode (abstract), LzDataElement and LzDataText<br>
707 The APIs for these classes are currently undocumented, but here are the
708 most useful parts of that API:
709 <pre> LzDataNode.ownerDocument <br> LzDataNode.parentNode <br> LzDataNode.getPreviousSibling <br> LzDataNode.getNextSibling <br> LzDataText.setData <br> LzDataText.data <br> LzDataElement.childNodes <br> LzDataElement.insertBefore <br> LzDataElement.replaceChild <br> LzDataElement.removeChild <br> LzDataElement.appendChild <br> LzDataElement.cloneNode <br> LzDataElement.getAttr <br> LzDataElement.setAttr <br> LzDataElement.setChildNodes <br> </pre>
710 A datapointer's .p slot points to an LzDataNode, or a subclass thereof,
711 and that attribute can be set directly as well. </li>
712 </ul>
713 </li>
714
715 <li>User-defined text tags
716 <p>The <code>attribute</code> element can be used to <a
717 href="reference/index.html?class.html#text-classes">define tags</a>
718 that contain text or XHTML. (Tags that extend <code><a
719 href="reference/index.html?text.html">text</a></code> and <code><a
720 href="reference/index.html?inputtext.html">inputtext</a></code>
721 continue to accept XHTML and plain text, respectively.)</p>
722 </li>
723
724 <li>Optimized inputtext views
725 <p><a
726 href="reference/index.html?inputtext.html#fixedsize-optimization">Optimized
727 <code>inputtext</code> views</a> are more responsive to keyboard
728 input at large sizes and on slow machines.</p>
729 </li>
730
731 <li>Documentation
732 <p>This release includes the beginning of the <a
733 href="guide">Laszlo Developer's Guide</a>. Check the <a
734 href="http://www.laszlosystems.com/developers/">Developer Zone</a> of
735 the Laszlo web site for updates and forthcoming chapters.</p>
736 <p>There are shiny new examples for:</p>
737 <ul>
738 <li>LzModeManager </li>
739 <li>XML Data (nee httpdata.lzx)</li>
740 </ul>
741 </li>
742
743 <li>Server administration (linked from the welcome page):
744
745 <ul>
746 <li>There is a new LPS administrative console application (see
747 the welcome application <i>Administration</i> section).</li>
748 <li><code>?lzt=cacheinfo&amp;details=1</code> server cache
749 statistics</li>
750 <li>Improved <code>?lzt=stat</code> server load statistics</li>
751 </ul>
752 </li>
753
754
755 <li>LZX language changes:
756 <ul>
757 <li><code>x, y, width, height</code> now expect <code>${...}</code>
758 syntax for expressions, old syntax is deprecated and warnings are given</li>
759 <li>the recommended way to test for undefined attributes is to
760 declare them in your class with an initial value of null. For example, <br>
761 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;attribute
762 name="foo" value="null
763 /&gt;</code><br>
764 then later you can write:<br>
765 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>if (this.foo) ....</code><br>
766 This is faster and easier to read than: <code>if (typeof(this.foo) ==
767 "undefined")
768 ...</code></li>
769 </ul>
770 </li>
771 <li>LFC changes:
772 <ul>
773 <li>Inputtext: new APIs
774 are documented in the reference
775 <ul>
776 <li>getSelectionPosition()</li>
777 <li> getSelectionSize()</li>
778 <li>setSelection() </li>
779 </ul>
780 </li>
781 <li>Node
782 <ul>
783 <li>initialize -&gt; construct (there will be a warning for this,
784 but it may not be in yet)</li>
785 <li>thaw -&gt; createChildren</li>
786 <li>deleteNode -&gt; destroy<br>
787 deleteNode is deprecated</li>
788 <li>searchimmediateParents -&gt;searchParents<br>
789 searchimmediateParents deprecated</li>
790 <li>setProp has been officially deprecated<br>
791 use setAttribute instead</li>
792 <li>retrieveData -&gt; updateData (retrieveData deprecated), also
793 renamed on datapath</li>
794 <li>getXPath is deprecated, use XpathQuery instead</li>
795 </ul>
796 </li>
797 <li>Services
798 <ul>
799 <li>The LzAudio service is deprecated. Use the audio APIs on
800 LzView instead.</li>
801 </ul>
802 </li>
803 <li>View
804 <ul>
805 <li>LzView now sports two shiny new attributes "xoffset" and
806 "yoffset", and a method called getBounds which returns the bounds of
807 the view when it has been rotated. There's also a couple of
808 bounds-based layouts in components/utils/layouts. getBounds() can be
809 used in constraints. </li>
810 <li>layout attribute: now has JavaScript support for setting at
811 run-time. Also classes may override all or part of the attribute. (You
812 can make the layout go away with class:none) <br>
813 Tag syntax:<br>
814 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;view
815 layout="axis:x; spacing:20"&gt;<br>
816 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
817 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;view bgcolor="red"
818 width="20" height="20"/&gt;<br>
819 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
820 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;view bgcolor="red"
821 width="20" height="20"/&gt;<br>
822 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
823 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;view bgcolor="red"
824 width="20" height="20" /&gt;<br>
825 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/view&gt; <br>
826 JavaScript syntax:<br>
827 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myview.setLayout(
828 {class: 'wrappinglayout, axis: 'y' } )<br>
829 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myview.setAttribute(
830 "layout" , {class: 'wrappinglayout, axis: 'y' } );</li>
831 <li>new methods: sendbehind, sendinfront (documented in refrence)</li>
832 <li>new property: framesloadratio (documented in refrence)</li>
833 <li>loadperc, renamed loadratio</li>
834 <li>new updateResourceSize method <br>
835 Since views which use a multi-frame resource base their size on the
836 size of the resource's first frame, the LFC may incorrectly measure the
837 intended size of a resource. This method can be called at any time to
838 recalcuate the resource size.</li>
839 <li>New behavior for views with a constraint on their size<br>
840 In previous releases, a view that had a constraint on its size would be
841 sized to its contents until the constraint was applied. Now, the view
842 will not have any size until the constraint is applied. This changes
843 the behavior of some apps -- mostly due to erroneous code that worked
844 in previous releases.</li>
845 <li>Different time for data application<br>
846 In previous releases, a view would receive its data whenever that data
847 was present. This meant that data could be received by a view before
848 init time, as early as construct time. Now a view will not receive its
849 data until <i>after</i> it inits.</li>
850 </ul>
851 </li>
852 <li>ModeManager plays better with LzFocus</li>
853 </ul>
854 <li>Components changes:
855 <ul>
856 <li>Layouts
857 <ul>
858 <li>simplelayout and wrapping layout now have "inset" param,
859 to create left or top margin</li>
860 <li>wrappinglayout was included in the build, but not
861 documented. Now it is. <br>
862 Changed "animated" parameter -&gt; "duration" (default is 0, which
863 causes it to not animate) horiz_spacing and vert_spacing changed to x
864 and yspacing. It also works better now.<br>
865 </li>
866 </ul>
867 </li>
868 <li>The Laszlo component set doesn't use the <code>label</code>
869 attribute for text content. Use the <code>text</code> attribute
870 instead. </li>
871 <li>The LZ component set name for a radio button is <code>&lt;radiobutton&gt;</code>
872 instead of <code>&lt;radio&gt;</code>.</li>
873 <li>The default font has changed. The old default font can be
874 included by using <code>&lt;font name="yourfont"
875 src="lztahoe8.ttf"/&gt;</code> If you want your entire application to
876 use this font, you can redefine the canvas's font like &lt;canvas
877 font="yourfont"&gt; at the top of your LZX program.</li>
878 <li>Each included font takes roughly 30% more space in an compiled
879 binary</li>
880 </ul>
881 </li>
882 <li>Deprecated APIs
883 <ul>
884 <li>LzNode
885 <ul>
886 <li>initialize</li>
887 <li>thaw</li>
888 <li>deleteNode</li>
889 <li>searchimmediateParents</li>
890 <li>setProp</li>
891 <li>retrieveData</li>
892 <li>getXPath</li>
893 </ul>
894 </li>
895 <li>LzText
896 <ul>
897 <li>label</li>
898 </ul>
899 </li>
900 <li>LzAnimatorGroup
901 <ul>
902 <li>start</li>
903 </ul>
904 </li>
905 <li>LzDatapointer
906 <ul>
907 <li>getXPath</li>
908 <li>getNodeOffset</li>
909 </ul>
910 </li>
911 <li>LzDataset
912 <ul>
913 <li>getStatusCode</li>
914 <li>lockFromUpdate</li>
915 <li>unlockFromUpdate</li>
916 <li>setURL</li>
917 </ul>
918 </li>
919 <li>global
920 <ul>
921 <li>inspect</li>
922 </ul>
923 </li>
924 </ul>
925 </ul>
926
927
928 <h1><a name="Changes1.0.2">Changes in 1.0.3<br>
929 </a></h1>
930 <ul>
931 <li>1.0.3 was a bug fix release. See <a href="#Defects1.0.2">defects
932 fixed in 1.0.3</a>.</li>
933 </ul>
934
935 <h1><a name="Changes1.0.1">Changes in 1.0.2<br>
936 </a></h1>
937 <ul>
938 <li>There are individual properties for specifying http back-end
939 timeouts. See lps.properties.</li>
940 <li>The default timeout for back end http requests is now 5 seconds.
941 (In previous releases the default timeout was infinite.)</li>
942 <li>LPS statistics collection can be controlled via values in the
943 lps.properties file.</li>
944 <li>LPS statistics collection of unique urls now strips the query
945 string from the url.</li>
946 </ul>
947
948 <h1> <a name="Changes">Changes in 1.0.1</a><br/>
949 </h1>
950 <ul>
951 <li>LZX source for redmond components refactored and made more
952 readable.</li>
953 <li>New Redmond horizontal scroll bar<br>
954 </li>
955 <li>Server statistics request</li>
956 </ul>
957 <hr/>
958 <h1><a name="Defects3.1">Defects fixed in 3.1</a></h1>
959 <p>
960 More than a hundred bugs have been fixed since the 3.0.2 release. Consult <a href="http://www.openlaszlo.org/jira/ ">JIRA</a> for complete information. Among the more significant fixes are the following:
961 </p>
962 <ul>
963 <li>mp3 files now correctly work in SOLO mode. <a href="http://www.openlaszlo.org/jira/browse/LPP-487">LPP-487</a></li>
964
965 <li>The font in the LZX reference is now embedded&#8212;looks good in all browsers. <a href="http://www.openlaszlo.org/jira/browse/LPP-335">LPP-335</a></li>
966 <li>Increased memory consumption reported in some nightly builds has been fixed. <a href="http://www.openlaszlo.org/jira/browse/LPP-714">LPP-714</a></li>
967 <li>Debugger issues with swf6 have been cleaned up. <a href="http://www.openlaszlo.org/jira/browse/LPP-753">LPP-753</a></li>
968 <li>Javascript issues with Internet Explorer have been cleaned up. <a href="http://www.openlaszlo.org/jira/browse/LPP-657">LPP-657</a></li>
969 <li>All international character sets work correctly with XML-RPC. <a href="http://www.openlaszlo.org/jira/browse/LPP-716">LPP-716</a></li>
970 <li>Various errors in Laszlo Explorer have been fixed. <a href="http://www.openlaszlo.org/jira/browse/LPP-513">LPP-513</a></li>
971 <li>"onlastframe" events now work correctly in mac browsers. <a href="http://www.openlaszlo.org/jira/browse/LPP-715">LPP-715</a></li>
972 <li>Setting <code>appendChild()</code> directly on a dataset no longer breaks replication. <a href="http://www.openlaszlo.org/jira/browse/LPP-692">LPP-692</a></li>
973 </ul>
974
975 <h1><a name="Defects3.0.1">Defects fixed in 3.0.2</a></h1>
976 <ul>
977 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-234'>LPP-234</a>] - SOAP schema forward base type references cause exception</li>
978 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-283'>LPP-283</a>] - Can't pass array of xsd:strings in SOAP rpc call</li>
979 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-300'>LPP-300</a>] - SOAP only parses first service and port</li>
980 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-408'>LPP-408</a>] - persistent connection agent stacktrace when sending messages</li>
981 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-424'>LPP-424</a>] - SOAP simple types not XML escaped when serialized to server</li>
982 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-432'>LPP-432</a>] - remove "file:" type for data and media requests, replace with http</li>
983 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-441'>LPP-441</a>] - Type of arrayitem is sometimes set incorrectly in SOAP</li>
984 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-456'>LPP-456</a>] - amazon-soap gets warning in compiler</li>
985 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-457'>LPP-457</a>] - WSDL stopped working in 3.0.2cr1</li>
986 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-425'>LPP-425</a>] - rpc.invoke() should return sequence # in return object</li>
987
988 </ul>
989 <h1><a name="Defects3.0">Defects fixed in 3.0.1</a></h1>
990 <ul>
991 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-227'>LPP-227</a>] - Fix source location bug "missing some sourceLocations"</li>
992 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-231'>LPP-231</a>] - Error messages aren't sent to remote debugger</li>
993 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-86'>LPP-86</a>] - Embed source location</li>
994 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-228'>LPP-228</a>] - Compiler/runtime support for distinguishing instance and class contents</li>
995 <li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-229'>LPP-229</a>] - Autoinclude support file</li>
996
997 </ul>
998 <h1><a name="Defects2.2.1">Defects fixed in 3.0</a></h1>
999 <ul>
1000
1001 <li>Error message no longer thrown for TTF fonts missing TTF name table.</li>
1002 <li>Compiler now correctly recognizes LZX files named with numbers as their first
1003 character in the filename.</li>
1004 <li>LPS Error log now includes WARN messages if cache directories are not writable.</li>
1005 <li>Windows installer includes more information when it fails to detect an installed
1006 JDK</li>
1007 <li>LPS is now compatible with ATG Dynamo</li>
1008
1009 <li>LZX Reference now includes grid, basegrid, and related components.</li>
1010 <li>Two defects in lzo serving were fixed. The first could cause lzo serving to use
1011 unnecessary server cpu. The second was a race condition that could cause the
1012 server to introduce corruption into the lzo file.</li>
1013
1014
1015 <li>Denied requests are now logged.</li>
1016 <li>LPS no longer holds an HTTP socket open when the backend uses http-keepalive and
1017 the response was an error condition.</li>
1018 <li>LPS no longer requires that the xalan jar be in Java's endorsed directory list.
1019 LPS installation and initialization issues with Java 1.4.2 and/or Tomcat 5.0
1020 are repaired.</li>
1021
1022 <li>http.maxUsers property in lps.properties works correctly.</li>
1023
1024
1025
1026 <li>Visible gets set to false when opacity is set to 0 if visibility hasn't been
1027 explicitly declared. This may cause some unexpected behavior with regards to
1028 layouts and constraints.</li>
1029 <li>Setting the visible property on a view which has a datapath may have
1030 unpredictable results, since the datapath uses setVisible to control whether the
1031 view is visible due to the presence or absence of mapped data. To work around,
1032 either be sure to set the visible after the ondata event or wrap the data-mapped
1033 view in an extra view.</li>
1034 <li>lps now has the ability to force compilation when compmgrdependencyoption = never</li>
1035 <li>LPS now includes a sample deployment configuration with recommended parameters
1036 set for live deployment. See $LPS_HOME/WEB-INF/lps/config-deploy.</li>
1037
1038 <li>comboboxes and menus can be closed by pressing the 'ESC' key</li>
1039 <li>In order to see the logging done by the httpclient library on behalf of the
1040 LPS running inside Tomcat 5, you need to copy
1041 <pre>
1042 $LPS_HOME/WEB-INF/lib/commons-logging.jar and
1043 $LPS_HOME/WEB-INF/lib/log4j.jar
1044
1045 to $TOMCAT_HOME/common/lib
1046 </pre>
1047 and restart tomcat5. The copy of Tomcat5 that comes with LPS already contains
1048 these jars installed in the correct location.</li>
1049 <li>Disabled editext now displays its contents
1050 <pre>
1051 &lt;edittext width="100" name="txt" text="foobar" enabled="false"/&gt;
1052 </pre>
1053 works as expected</li>
1054
1055 <li>javadatasource has been completely deprecated and removed</li>
1056 <li>WSDLs are now correctly fetched over HTTPs</li>
1057
1058 <li>Attributes used as an 'lvalue' (the target of an assignment) in a
1059 method body may now be referred to as simply &lt;attribute&gt;. Explicitly using
1060 this.&lt;attribute&gt; or this["&lt;attribute&gt;"] is no longer required.</li>
1061
1062
1063 <li>^M in CDATA no longer results in blank text.</li>
1064 <li>The Tree component now works with scrollbar when built with remote data.</li>
1065 <li>Resizable canvas: the canvas width and height may now be expressed as a
1066 proportion of the browser window dimensions. The canvas will send onwidth and
1067 onheight events. Views may be constrained to the width and height of the canvas.
1068 For example:
1069 <pre>
1070 &lt;canvas width="100%" height="100%"&gt;
1071 &lt;view width="${parent.width}" height="${parent.height/4}" ...
1072 </pre></li>
1073 <li>The API for specifying Client Fonts has been finalized.</li>
1074
1075 <li>This release adds a dialog box that allows the developer to set debugger
1076 options. This dialog box is available under both the swf5 and swf6 targets,
1077 but most of the options only have an effect in a swf6 target.</li>
1078 <li>The size profiler and the size summary at the bottom of the app console has been
1079 updated to properly support swf6 and the internal compression.</li>
1080 <li>This release creates applications that require version 6.0r79 or greater of the
1081 Flash Player. The HTML
1082 pages that the server generates force an update from Flash Player 5. This
1083 means that if you view the
1084 default HTML pages on a browser with Flash Player 5 installed, the application
1085 will generate an update dialog. This is currently only implemented for Internet
1086 Explorer on Windows</li>
1087 <li>Applications no longer display unexplained compiler warnings.</li>
1088 <li>In previous releases, the default font was an embedded font called "Verity". in
1089 this release the default font is a client font whose appearance is dependant on
1090 the installed font in your environment. The default font is currently "Verdana".
1091 Some systems do not include this font and may have an undesirable appearance.
1092 This will change in a future release.</li>
1093
1094 <li>In previous releases, the default font was an embedded font called "Verity". in
1095 this release the default font is a client font whose appearance is dependant on
1096 the installed font in your environment. The default font is currently "Verdana".
1097 Some systems do not include this font and may have an undesirable appearance. A
1098 font fallback mechanism is in place which attempts to select the best font
1099 available.</li>
1100 <li>Multiline text no longer has a default width of 0.</li>
1101
1102
1103
1104 <li>The KRANK feature is now implemented for the swf6 target. Kranked swf6
1105 applications are fully functional.</li>
1106
1107
1108
1109 </ul>
1110
1111 <h1><a name="Defects2.2">Defects fixed in 2.2.1</a></h1>
1112
1113 <li>You can now pass datasets for request headers and document style calls instead
1114 of XML strings. Note that datasets aren't namespace aware so, for the time
1115 being, using datasets is not reccomended.
1116 You can now access response headers by setting a local dataset in the SOAP object.
1117
1118 For example:
1119 <pre>
1120 &lt;soap requestheaders="dset1" responseheaders="dset2"&gt;
1121 &lt;remotecall funcname="docstylefunc"&gt;
1122 &lt;param value="dset3" /&gt;
1123 &lt;/remotecall&gt;
1124 &lt;/soap&gt;
1125
1126 </pre></li>
1127 <li>The SOAP scalability issues have been addressed.</li>
1128 <h1><a name="Defects2.1.3">Defects fixed in 2.2 (since 2.1.3)</a></h1>
1129 <ul>
1130
1131 <li>Visible gets set to false when opacity is set to 0 if visibility hasn't been
1132 explicitly declared. This may cause some unexpected behavior with regards to
1133 layouts and constraints.</li>
1134 <li>Setting the visible property on a view which has a datapath may have
1135 unpredictable results, since the datapath uses setVisible to control whether the
1136 view is visible due to the presence or absence of mapped data. To workaround,
1137 either be sure to set the visible after the ondata event or wrap the data-mapped
1138 view in an extra view.</li>
1139 <li>lps now has the ability to force compilation when compmgrdependencyoption = never</li>
1140 <li>LPS now includes a sample deployment configuration with reccomended parameters
1141 set for live deployment. See $LPS_HOME/WEB-INF/lps/config-deploy.</li>
1142 <li>comboboxes and menus can be closed by pressing the 'ESC' key</li>
1143 <li>In order to see the logging done by the httpclient library on behalf of the
1144 LPS running inside Tomcat 5, you need to copy
1145 <pre>
1146 $LPS_HOME/WEB-INF/lib/commons-logging.jar and
1147 $LPS_HOME/WEB-INF/lib/log4j.jar
1148
1149 to $TOMCAT_HOME/common/lib
1150 </pre>
1151 and restart tomcat5. The copy of Tomcat5 that comes with LPS already contains
1152 these jars installed in the correct location.</li>
1153
1154 <li>Disabled editext now displays its contents
1155 <pre>
1156 &lt;edittext width="100" name="txt" text="foobar" enabled="false"/&gt;
1157 </pre>
1158 works as expected</li>
1159 <li>Verified fixed in lps-2.2 (lps-components), closing.</li>
1160 <li>javadatasource has been completely deprecated and removed</li>
1161
1162
1163 </ul>
1164 <h1><a name="Defects2.1.2">Defects fixed in 2.1.3 (since 2.1.2)
1165 </a></h1>
1166 <ul>
1167 <li>Under load, single long back-end requests no longer lock the entire media or data cache.</li>
1168 </ul>
1169
1170 <h1><a name="Defects2.1.1">Defects fixed in 2.1.2 (since 2.1.1)
1171 </a></h1>
1172 <ul>
1173 <li>LPS no longer requires that the xalan jar be in Java's endorsed directory list. LPS installation and initialization issues with Java 1.4.2 and/or Tomcat 5.0 are repaired.</li>
1174 <li>The compiler uses the correct font when "default" font is redefined and canvas
1175 font is *not* redefined.
1176 <pre>
1177 &lt;canvas&gt;
1178 &lt;font src="helmetr.ttf" name="default" /&gt;
1179
1180 &lt;text&gt;helmet&lt;/text&gt;
1181 &lt;/canvas&gt;
1182 </pre>
1183 Works as expected.</li>
1184 <li>Denied requests are now logged.</li>
1185 <li>LPS no longer holds an HTTP socket open when the backend uses http-keepalive and
1186 the response was an error condition.</li>
1187 <li>http.maxUsers property in lps.properties works correctly.</li>
1188 <li>combobox sends keycode with key events correctly.</li>
1189 <li>The <code>javadatasource</code> is deprecated and will be replaced in a future release.</li>
1190 </ul>
1191
1192 <h1><a name="Defects2.1">Defects fixed in 2.1.1 (since 2.1)
1193 </a></h1>
1194 <ul>
1195 <li>LZX Reference now includes grid, basegrid, and related components.</li>
1196 <li>Two defects in lzo serving were fixed. The first could cause lzo serving to use unnecessary server cpu. The second was a race condition that could cause the server to introduce corruption into the lzo file.</li>
1197 </ul>
1198
1199 <h1><a name="Defects2.0">Defects fixed in 2.1 (since 2.0)
1200 </a></h1>
1201 <ul>
1202 <li>Error message no longer thrown for TTF fonts missing TTF name table.</li>
1203 <li>Compiler now correctly recognizes LZX files named with numbers as their first
1204 character in the filename.</li>
1205 <li>LPS Error log now includes WARN messages if cache directories are not writable.</li>
1206 <li>Windows installer includes more information when it fails do detect an installed
1207 JDK</li>
1208
1209 <li>LPS is now compatible with ATG Dynamo</li>
1210 </ul>
1211 <h1><a name="Defects1.0.3">Defects fixed in 2.0 (since 1.0.3)
1212 </a></h1>
1213 <ul><li>A resource whose name begins with a number, such as &lt;resource name="2c" src="..."/&gt;, cannot be referenced. An attempt to refer to it, such as &lt;view resource="2c"/&gt;, will instead attempt to import the file named "2c".</li>
1214 <li>When the compiler issues warnings for missing file and resource errors, they
1215 may display the absolute pathname of the file on disk, rather than pathnames
1216 relative to the base application URL, as other compiler warnings do.</li>
1217
1218 <li>A minor optimization was made to the way in which constraints are
1219 resolved that has changed the order in which they are applied. This normally
1220 shouldn't matter, but in some edge cases (especially deeply circular
1221 constraints and program errors).</li>
1222 <li>The LFC's xpath parser does not properly interpret whitespace
1223 between /'s and []'s.</li>
1224 <li>
1225 >If you set a font is set as an attribute of the canvas and any of the redmond
1226 components are used, the following compiler error will be generated:
1227 <pre>
1228 Error: ../WEB-INF/lps/components/redmond/redmondcombobox.lzx:119:55: Can't find font nicefont ; compilation aborted
1229 </pre>
1230 Workaround: set the font attribute on all of the top-level views or explicitly
1231 include the redmond component or the whole library, for example:
1232 <pre>
1233 &lt;include href="/redmond/library.lzx"/&gt;
1234 or
1235 &lt;include href="/redmond/redmondbutton.lzx"/&gt;</pre></li>
1236 <li>Multi-line string literals (or an unclosed string literal) are errors
1237 but the compiler does not generate a warning for them and may generate incorrect
1238 error locations as a result.</li>
1239 <li>Fixed that thing that was busted last time.</li>
1240 <li>A view with pixellock="true" will stop updating its size to the size
1241 of its contents, even if it doesn't have an explicit width and height.</li>
1242 <li>Long animators (with a duration of about eight seconds ) may not end at the
1243 coorect value.</li>
1244 <li>The reference lists 'resizable' as a view attribute, but this attribute is unused.</li>
1245 <li>
1246 If you are deploying the LPS inside Tomcat (or other servlet
1247 containers) running against j2sdk (or j2re) 1.4.2, you will need to
1248 make sure the LPS version of xalan.jar is used. For Tomcat you
1249 can copy $LPS_HOME/WEB-INF/lib/xalan.jar to $TOMCAT_HOME/common/endorsed.
1250 See you servlet container documentation specific details here.
1251 </li>
1252 <li>A mistake with the capitalization of attribute or event names may lead to compiler errors which are hard to pinpoint. XML is casensitive, be sure to check the proper se-case of attribute names (they will all be lowercase in the library lzx components).</li>
1253 <li>
1254 Error messages of the form:
1255 <pre>
1256 contactslib.lzx:320:44: element "tagname" from namespace "http://www.laszlosystems.com/2003/05/lzx" not allowed in this context
1257 </pre>
1258 mean simply that that "tagname" is not a known tag name. The bits about the
1259 namespace and "in this context" can be ignored.</li>
1260 <li>No compiler warning given when a resource is undefined. So for example
1261 this code will not warn that the resource identifier "fake" is undeclared.
1262 <pre>
1263 &lt;view resource="fake"/&gt;</pre></li>
1264 <li>Testing for undefined properties using 'typeof(o.p) == "undefined"' will
1265 generate a warning in the debugger. The warning can be avoided if necessary by
1266 using 'typeof(o[""+(p)]) == "undefined"'. If 'p' is known at compile time, the
1267 string conversion forced by '""+' can be omitted. Best practice is to tolerate
1268 the warning, which will not occur in a future release, rather than obfuscate
1269 your code in this fashion.</li>
1270 <li>lztabslider panels display "clickable" cursor when the area is not designated as clickable</li>
1271 <li>Warnings about tag 0x19 are harmless and can be ignored.</li>
1272 <li>The font "italic lztahoe8" is not compiled into the application swf file by
1273 default. This
1274 means that if you try to use italic style text in Javascript code, it will be
1275 invisible. Workaround is to manually include the font using a &lt;font&gt; tag in
1276 the app, or to include static text in the XML which uses italic style.</li>
1277
1278 <li>Changing motion attribute on an animatorgroup has no effect.</li>
1279 <li>Constraining an attribute to one or more values which are themselves
1280 constraints may produce debugger warnings about undefined references, even
1281 though this is perfectly valid. Ignore these warnings.</li>
1282 <li>There may be cases where calls to Debug.write don't result in debugger
1283 output, even though the method is being called. This is known to happen for the
1284 onaddsubview event and the addSubview methods when they are called by a
1285 replicated node that is a class which has children.</li>
1286 <li>Too many consecutive fonts will cause the compiler to emit bad code. As a
1287 workkaround, use fewer fonts or intersperse an innocuous '&lt;script&gt;' block.</li>
1288 <li>Laszlo applications may misrender a PNG with an alpha channel.</li>
1289 <li>subviews containing subviews which are added to a class which has defaultplacement attribute set do not trigger onaddsubview or addsubview to get called</li>
1290 <li>Can't restart an animator onstop</li>
1291 <li>Calling stop() on an animator which isn't running will cause problems. The animator destroy() method calls stop, so animators in states may not work correctly.</li>
1292 <li>Layouts, constraints, and LzView.setAttributeRelative don't currently
1293 work properly with views that are rotated.</li>
1294 <li>When data is imported the runtime, only xml element nodes are treated
1295 as children of a given data node. All text nodes are coalesced through
1296 concatenation and can be referred to as the text() property of the node. When
1297 the node is serialized, all of the text will be written as the last (text)
1298 element of the node.</li>
1299 <li>For compatibility with the DR release, http headers come back with
1300 every data response by default. This allows for the client to introspect header
1301 information. Given that this is usually not necessary, the default results in
1302 extra data traffic between the client and the LPS. The response headers can be
1303 turned off by using the dataset attribute getresponseheaders="false"</li>
1304
1305 <li>Remaking a request of a dataset which is mapped to a view replication
1306 which does not use pooling results in a brief display problem where the views
1307 from both the old request and the new request are visible at the same time. Use
1308 the pooling option to work around this if possible, or hide the replicated
1309 views when resubmitting the request.</li>
1310 <li>>Datapaths which match multiple nodes can only do so on the last node
1311 in their xpath. Always map the multiple match to the view which replicates.</li>
1312 <li>selectParent will select bogus nodes that are not inside the dataset
1313 which a datapointer is pointing to, and it will return true (indiciating that
1314 it successfully selected a parent node) in this case.</li>
1315 <li>Although calling setFromPointer() on a datapath will work when the
1316 call is made, the datapath may not properly process further changes to the
1317 underlying data after the call is made. If the datapath needs to update as the
1318 data changes, compose an xpath that points to the new data and call the
1319 datapath's setXPath routine with that value.</li>
1320 <li>Once applied, a $path constraint inside a state will not be removed when the state is removed.</li>
1321 <li>Calling super.otherMethod() from inside thisMethod won't work as
1322 expected. This generally isn't best practice, but it is spec'ed to work in the
1323 ECMAScript standard. Because of this bug, super should only be used when
1324 calling the superclass version of the same method.</li>
1325 <li>The getVolume call doesn't work properly</li>
1326 <li>The LFC doesn't properly interpret the width and height of rotated
1327 views -- transformations to their width and height happen in their parents (non-
1328 rotated) coordinate system. To manipulate the width and height of a rotated
1329 view, create an extra layer of hierarchy and embed the resizing view inside the
1330 rotated one.</li>
1331 <li>The deleteNode() method of LzNode (and the overrides by the subclasses
1332 of LzNode, such as LzView) are incomplete and do not free all the memory used
1333 by the node. When possible, reuse is preferable to delete/new because of this
1334 problem and because node instantiation is slow.</li>
1335 <li>Saving an XML file from NotePad or Visual Studio .NET with UTF-8 encoding may
1336 insert a "byte order mark" at the beginning of the text. LPS will
1337 report this error:
1338 <pre>
1339 Error: broken.lzx:1:1: Content is not allowed in prolog.</pre></li>
1340 </ul>
1341
1342 <h1><a name="Defects1.0.2">Defects fixed in 1.0.3<br>
1343 </a></h1>
1344 <ul>
1345 <li>In previous releases running against Sun JVM 1.4 or greater,
1346 because of a JVM bug, the server can throw a StackOverFlow Exception
1347 when validating the LZX code for certain applications. When this
1348 occurs, in 1.0.3, the server will generate a compiler warning, disable
1349 validation for the compilation, and continue to compile the
1350 application. </li>
1351 </ul>
1352
1353 <h1><a name="Defects1.0.1">Defects fixed in 1.0.2<br>
1354 </a></h1>
1355 <ul>
1356 <li>The LPS now properly flushes http requests to the back-end. This
1357 will result in fewer warnings in the detailed lps log about
1358 RecoverableHttpExceptions. </li>
1359 <li>Numerous typographical errors in the comments in the default
1360 lps.properties were fixed.</li>
1361 <li>Individual back-end requests can no longer hang the server cache.</li>
1362 <li>The request toggles in lps.properties now work correctly.</li>
1363 </ul>
1364
1365 <h1><a name="Defects">Defects fixed in 1.0.1<br>
1366 </a></h1>
1367 <ul>
1368 <li>Improved client performance<br>
1369 </li>
1370 <li>Bloch got married.</li>
1371 <li>iPaq compatibility restored.<br>
1372 </li>
1373 <li>Redmond window has visible non-focus state.</li>
1374 <li>Combobox and menus can now be used in clipped views.</li>
1375 <li>Checkbox can be used in constraints. <br>
1376 </li>
1377 </ul>
1378 <p class="bodytext">&copy; Copyright 2002-2005 <a
1379 href="http://www.laszlosystems.com/">Laszlo Systems, Inc.</a> All rights reserved. Unauthorized use, duplication or distribution is strictly prohibited.</p>
1380 </body>
1381 </html>

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26