File: CHANGES

package info (click to toggle)
batik 1.10-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 29,088 kB
  • sloc: java: 192,049; xml: 19,277; sh: 85; makefile: 5
file content (1657 lines) | stat: -rw-r--r-- 67,653 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
Change Log
==========

The following log records some of the most important changes.
Bug fixing is an ongoing task, so it is implied in all sub-releases.

1.9 -> 1.10pre
--------------

BATIK-906: Should never use Error to report runtime errors
BATIK-1123: Missing import of ImportInfo class
BATIK-1125: Rasterizer fails with base64 embedded png
BATIK-1140: Show line numbers on exception
BATIK-1142: Remove e.printStackTrace for BridgeException in SVGAbstractTranscoder
BATIK-1157: Wrong value for default JPEG quality in documentation
BATIK-1170: Incorrect ColorConvertOp alpha handling breaks masking
BATIK-1196: Run batik tests from junit
BATIK-1197: Make jython and rhino optional
BATIK-1198: TIFF transcoder looks for invalid class name for its WriteAdapter
BATIK-1200: ImagingOpException: Unable to transform src image
BATIK-1204: Remove hashtable
BATIK-1212: Show real error on URL failure
BATIK-1216: Compile error on Java 10
BATIK-1222: Only call DOMImplementation in deserialization

1.8 -> 1.9
----------

- Maven build support
- Java 6 or later is minimum runtime required
- FOP-2489: An SVG file using markers is not rendered by FOP 2.0

1.7 -> 1.8
----------

1. Bugzilla problem reports fixed:

    42408, 43411, 43847, 43950, 44553, 44590, 44919, 44936, 44966,
    45112, 45114, 45117, 45397, 45520, 45883, 45958, 46072, 46124,
    46202, 46227, 46430, 46431, 46513, 46855, 46871, 47201, 47202,
    48182, 48411, 49889, 49968, 50006, 50100, 51908, 42395

2. New features

  * Support for the printNode() script function.
  * Support for the Window and Location interface subsets from
    SVG Tiny 1.2.

3. Improvements

  * DocumentType nodes are now created for XML documents where one was
    supplied in the markup (although only the name, publicId and systemId
    properties of the DocumentType object are filled in).
  * Dynamically created <script> elements inserted into the document are
    now executed (at most once, as with HTML).
  * The location bar in Squiggle is now updated if the requested document
    followed an HTTP redirect.
  * Improve Batik's Rhino class shutter so that it works with Rhino 1.6R7.
  * Allow SVGGenerator2D to embed fonts that weren't obtained from the
    standard AWT font lookup mechanism.
  * ttf2svg no longer outputs hkern elements outside user-provided glyph range.
  * Batik now tries to access content in HTTP error responses (for example, one
    is able to setup custom content for missing - HTTP code 404 - and/or other
    erroneous situations).
  * Internally registers not only font families but also makes font available
    through their font names.
  * All CSS font weights are now handled for font selection
  * Compatibility with GNU Classpath, OpenJDK and other open JVM was improved
    (image I/O is now used by default, over the Sun proprietary classes).

4. Bug fixes

  * Better DOM serialization code.
  * The prompt() script function now returns a proper ECMAScript String
    value instead of an object.
  * Changes to a CDATA section in a <style> element are now detected.
  * Fixed tight bounds calculation for Quadradic Bezier curves.
  * Now uses float for Document Dimensions.
  * Ensure motion animations that are removed from a document don't
    cause an NPE.
  * Animations that become frozen are now not incorrectly deprioritised
    compared to other animations on the same attribute.
  * Avoid canvas repaint problems that occur in some circumstances when
    it is being resized.
  * Exceptions are now thrown if an invalid QName is passed to
    DOMImplementation.createDocumentType().
  * DocumentType.getName() now returns the correct value.
  * Fixed SVGLocatable.farthestViewportElement to return null when
    called on the outermost <svg> element.
  * JavaScript fragments using different types within the one document
    (such as text/javascript and application/ecmascript) now share the
    same script interpreter.
  * Exporting 256 color indexed PNG files in Squiggle now works.
  * Avoid an NPE in ttf2svg when resolving substitutions for Arabic script.
  * ttf2svg now correctly writes out kerning pairs for characters that have
    no name.
  * SVGGraphics2D now serializes font-size values in style="" attributes
    with a unit.
  * Avoid an NPE when disposing a document that had animations targetting
    CSS properties on elements that subsequently became display:none.
  * The startOffset="" attribute on textPath elements now allows negative
    percentages.
  * Correctly handle individual missing <view> attributes by looking at
    the closest ancestor SVG element.
  * Fixed HeadlessExceptions related to WMF transcoding.
  * Font families containing numbers (like "Univers 45 Light") no longer
    cause errors.
  * Compiling on Oracle JDK 7 and JDK 8 now works.
  * On Windows, spaces within environment variables like JAVA_HOME no longer
    cause errors (JDK 6 and above default install location were moved from
    the system drive root to a Java folder inside Program Files).
  * Fixed a manifest issue affecting several Jars which prevented proper
    integration with NetBeans and other third-party IDEs and tools.
  * Several fixes for Rasterizer Task contribution (which was not building
    in Linux nor Cygwin and more).

5. Misc

  * Minimum required Java version was raised to 1.5.


1.7beta1 -> 1.7
---------------

1. Bugzilla problem reports fixed:

    26815, 28344, 35165, 36570, 37496, 38498, 40163, 40727, 41205,
    41820, 41947, 41955, 41988, 42014, 42021, 42032, 42075, 42118,
    42137, 42168, 42169, 42196, 42209, 42210, 42212, 42221, 42228,
    42255, 42258, 42311, 42312, 42333, 42381, 42386, 42479, 42504,
    42505, 42543, 42645, 42651, 42697, 42698, 42807, 42961, 42963,
    442968, 3022, 43043, 43045, 43165, 43194, 43195, 43370, 43418,
    443446, 3638, 43657, 43744, 43760, 43764, 43787, 43854, 43871,
    443904, 3953, 44029, 44054, 44092, 44146

2. New features

  * xml:id support (http://www.w3.org/TR/xml-id/).
  * ElementTraversal support (http://www.w3.org/TR/ElementTraversal/).
  * Enhanced DOM Viewer window, contributed from Ivan Andjelkovic,
    a Google Summer of Code student.

3. Improvements

  * Support for cursor="move" on OS X, and cursor="help" on all
    platforms.
  * Improved conversion to/from WMF.
  * data: URIs now supported as external stylesheets, scripts, filters.
  * SVG 1.1 feature strings now reported.
  * The viewBox="" attribute on <svg> is now animatable.
  * Implemented SVGSVGelement.getViewBox().
  * A document's document element can now be replaced.
  * Performing animation hyperlinking backwards is now supported, as
    well as using <a> elements to hyperlink to animations.
  * Updated pdf-transcoder.jar to one built from FOP 0.94.
  * Squiggle's View Source window is now syntax highlighted.

4. Bug fixes

  * XPath interface objects now exposed to ECMAScript.
  * The three other MIME types for ECMAScript are now really supported
    (text/javascript, application/javascript, application/ecmascript).
  * Pseudo-elements now parsed properly in CSS selectors.
  * Avoid null pointer exception when event-base timing specifiers
    in animations reference an element by ID within a <use> shadow tree.
  * Invalid min="" and max="" values on animation elements now ignored.
  * Corrected CSS cascade order for rules of equal specificity.
  * Fixed CSS :lang() processing so that it matches case insenstiviely,
    using xml:lang="" as well as lang="", and using proper hyphen-
    separated tokens.
  * Gradients with gradientUnits="objectBoundingBox" disabled when the
    bounding box has zero width or height.
  * Avoid an array index exception for certain degenerate motion path
    animations.
  * Fixed mouse event button reporting.
  * Avoid null pointer exception when cloning <symbol> and <image>
    elements.
  * Make empty <filter> elements result in no rendering for the
    filtered element.
  * SVGStylable.getPresentationAttribute() now returns null if the given
    presentation attribute is not specified on the element.
  * Specifying textLength="" on text elements that have non-text nodes
    as their first children now works.
  * Avoid numerical accuracy issues when sampling frozen animations.
  * Event listeners are now removed when <text> elements are removed
    from the document.
  * Invalid SVG 1.0 feature string removed.
  * Ensure animation elements are properly deinitialised when they are
    removed from the document.
  * Allowed animations in <use> element shadow trees to have syncbase
    timing specifiers that refer to elements outside the shadow tree.
  * Fixed bug in DOM event removal/dispatch.
  * Ensure the animation engine is resumed if it is sleeping when a
    beginElement() call is made.
  * Avoid a null pointer exception in JSVGScrollPane if the document
    doesn't return a bounds.
  * Avoid a null pointer exception when painting a GraphicsNode on to an
    SVGGraphics2D.
  * Rasterizer -cssUser command line argument now resolved against
    current working directory.
  * Fixed bug in key event dispatching code.
  * Decrease memory required for storing animation elements' previous
    intervals (used for hyperlinking).
  * Avoid infinite loop for animations with multiple, identical begin
    (or end) instance times.
  * Ensure TIFF and JPEG codecs really aren't compiled unless the relevant
    Sun classes are present.
  * Avoid null pointer exception when accessing animated marker orient
    values.
  * Patched Rhino so that the ECMAScript debugger runs on OS X.
  * Ensure the animation engine is initialised before the SVGLoad event
    is dispatched.
  * Restored exception throwing from bridge classes when required
    length attributes are missing.
  * Duplicated codec classes removed from awt-util jar.
  * Avoid null pointer exceptions in DOMMouseEvent objects.
  * Motion animation transforms are now applied after the transform=""
    attribute.
  * Fixed bug in DOM event default action invocation in SVG 1.2 documents.
  * Fixed bug in CSS class name matching, which occured only when an
    element was declared to be a member of multiple classes, where one
    is a prefix of another.
  * Fixed bug on OS X where the zoom interactor overlay was not shown.

5. Misc

  * Official maven artifacts are now supplied.


1.6 -> 1.7beta1
---------------

1. Bugzilla problem reports fixed:

    22260, 25428, 28337, 29417, 29552, 32415, 34217, 34234, 34364,
    34847, 34938, 35349, 35480, 35549, 35655, 35661, 35683, 35722,
    35727, 35773, 35878, 35976, 35977, 36165, 36253, 36278, 36309,
    36455, 36483, 36485, 36493, 36511, 36613, 36614, 36615, 36743,
    36745, 36746, 36747, 36769, 36889, 36924, 36933, 37276, 37497,
    37890, 37891, 37892, 37986, 37989, 38045, 38158, 38176, 38178,
    38183, 38379, 38475, 38497, 38549, 38558, 38568, 38750, 38775,
    38782, 38785, 38831, 38872, 38930, 38932, 38933, 38990, 39032,
    39058, 39202, 39297, 39303, 39318, 39361, 39751, 39755, 39784,
    39831, 39838, 40098, 40167, 40336, 40368, 40392, 40393, 40397,
    40403, 40405, 40594, 40605, 40631, 40681, 40686, 40857, 40898,
    40927, 40994, 41079, 41165, 41216, 41234, 41288, 41329, 41331,
    41336, 41473, 43954

2. New features

  * DOM Level 3 Core/Events/XPath support.
  * Improved WMF transcoder support.
  * Override style declaration support.
  * Near complete SMIL Animation support.
  * SVG 1.2 features:
      * resource documents
      * shapechange and RenderedBBoxChange events
      * SVGGlobal startMouseCapture/stopMouseCapture methods
      * handler elements

3. Improvements

  * The SVG namespace declaration is now not assumed for the document element
    when an SVG declaration is not present.  Certain non-conformant content
    will now be identified as being in error.
  * New MacRenderer implementation that avoids 10x slowdown on
    Tiger.
  * Mutations to flowText contents now cause the rendering to update, and
    flowRegion objects are now rendered.
  * Support for normalized path segments on SVGAnimatedPathData, thanks to
    Andres Toussaint.
  * Updated pdf-transcoder.jar to one built from FOP 0.9alpha1:
      * This fixes text being drawn as text in PDF.
      * JPEG streams being embedded as JPEG.
      * Default bitmap dpi is 300.
      * Most gradients and patterns are now correct (pattern overflow isn't
        handled properly although most of the code is present), and
        gradients with complex repeats are rasterized due to difficulties
        expressing them in PDF.
  * Transcoders with the KEY_EXECUTE_ONLOAD hint set force the document
    to be dynamic.
  * Added JIIO codecs to Batik (not enabled by default)
  * Support for finding XML Parser through JAXP.
  * Enhancements to ArabicTextHandler.
  * Update Manager's MIN_REPAINT time is now adjustable.
  * GraphicsUtil warning about Graphics from BufferedImage
    w/o BUFFERED_IMAGE hint is now controllable with property.
  * JSVGScrollPane now has 'scrollbarAlwaysVisible' mode.
  * Improved Path parser so it is more conformant.
  * Updated Rhino to 1.6R5.
  * Documents in Squiggle's Go menu now have the full URI as a tooltip.
  * Better version number reporting from org.apache.batik.Version.
  * Implemented SVGPathElement.getPathSegAtLength.
  * Implemented 'getFunctionName' for built in CSS functions.
  * Exposed SAXDocumentFactory's parser to subclasses.
  * Added a -snapshotTime option to the rasteriser.
  * Now using Apache XML Commons External, for SAC, DOM 3 Core, SMIL Animation
    and SVG 1.1 DOM bindings.
  * Encoding as specified in a Content-Type header's charset parameter is now
    honoured when scripts are loaded.
  * Changed InterpreterFactory so that multiple MIME types can be associated
    with a given Interpreter.
  * text/javascript, text/ecmascript, application/javascript and
    application/ecmascript are now all supported as script types for Rhino.
    Processing of application/ecmascript is as specified in RFC 4329.
  * Improved integration when running under Mac OS X: Squiggle's menu bar
    is now at the top of the screen, the application window has a proper
    name and functional About/Preferences/Quit menu items, and a Squiggle.app
    application bundle can now be created.
  * JAR files now have Implementation-* attributes.
  * Added an interface for all ImageRenderers to get/set RenderingHints.

3. Bug fixes

  * SVGMatrix.rotate now takes deg rather than radians.
  * Fixed mouseout/mouseover tracking, which regressed some time between
    1.5beta5 and 1.6.
  * Fixed misplaced glyph for mixed LTR and RTL text.
  * Fixed handling of tooltips from title elements.
  * Fixed rendering error (bug 36511).
  * Fix for broken event propagation across 'use' element shadow tree boundary.
  * Fixed a bug in the handling of 'x', 'y', 'width', 'height',
    on feImage elements.
  * Fixed bug in EventTarget.{add,remove}EventListenerNS wrapper
    for Rhino.
  * Fixed memory leak with dynamically added title tooltips.
  * Fixed bug with update regions and filters.
  * Fixed a problem with feSpotLight and feSpecular lighting (bug 36745).
  * Fixed bug with event removal for multiple events and the same target
    (thanks Andreas).
  * Fixed problem with lowercase 'European' vowels (accented vowels).
  * Fixed duplicated fragment identifier bug.
  * Fix to allow transcoders that execute onload to work with SVG 1.2
    documents.
  * Fix incorrect reporting of modifier key states in DOM UI event objects.
  * The broken link image works again now.
  * Convert "" to null for namespace URIs given to public DOM interfaces.
  * Gradient scaleback is now 0.999 rather than 0.97.
  * ttf2svg now emits a document with an SVG namespace declaration.
  * Include the o.a.b.ext.awt.image.spi.{ImageWriter,RegistryEntry} service
    resource files in the codec jar.  (Fixes problems with data: URIs for
    images when Squiggle is run from the jars.)
  * Fixed problem with ZoomAndPan handling overriding user disabling of
    interactors.
  * More sensible handling of source 'URLs' in svgrasterizer.
  * Greyscale sources are now treated as if they have sRGB Gamma.
  * Fixed SVGTextContentElement.getExtentOfChar to use glyph metrics rather
    than the glyph shape bounding box.
  * Changed Errors to UnsupportedOperationExceptions for unimplemented methods.
  * JSVGViewerFrame uses reflection for the Rhino debugger to enable
    compilation without Rhino.
  * Fixed phantom 'double click' bug.
  * Handle 'style' elements added and removed from the document when they are
    not at the root of the addition/removal.
  * Make CSS engine not throw an NPE for extension elements that don't expose
    an OverrideStyleProvider.
  * Fixes for text-on-a-path with glyphs who's geometry doesn't "start" at 0.
  * Various deadlock fixes.
  * Fixed bug where writing TIFF with JPEG compression fails.
  * Fixed significant performance bug in creating geometry (it was
    parsing the entire path for each entry in the path, O(N^2)).
  * Fixed SVGTextContent interfaces on FlowRoot elements.
  * Fixed NPE when reloading an SVG 1.2 document quickly.
  * Fixed bug where mousing over 'a' elements would result in exceptions.
  * Avoid NPEs when loading scripts from file: URIs.
  * Fixed flowText regression by rebasing off SVGOMTextPositioningElement.
  * radialGradient has a default value of "50%" for 'r' (thanks Tonny).
  * Fixed bug in key event dispatching when compiled under JDK 1.3.
  * Avoid precision errors in stringification of transform list values
    (thanks Nick).
  * Unmaximize Squiggle window if the "Automatically resize window when
    loading documents" option is turned on.
  * Fixed improper rendering of the batik70.svg sample under OS X.
  * Fixed synchronization bug in the SVG generator.

4. Misc

  * Code now compiles under Java 1.5 and 1.6.
  * Lots of code/javadoc cleanups.
  * New Forrest-based website for Batik.
  * New about box/splash screen.
  * Visual refresh for Squiggle's toolbar icons and Preferences window.


1.5.1 -> 1.6
------------

1. Bugzilla problem reports fixed:

         28035, 28188, 28429, 28432, 28487, 29110, 29891, 30580, 30584,
         30739, 30923, 30925, 30948, 31603, 32108, 32435, 32872, 32951,
         33242, 33733, 33890, 33923, 33986, 34030, 34041, 34115

2. SVG 1.2 Features:

 * All SVG 1.2 elements/features have been moved from
   the Batik namespace into the SVG 1.2 namespace (except for
   flowText which remains, due to some loss of functionality
   with the current flowRoot and potential spec instability).
 * Implementation of SVG 1.2 flowRoot element (text flow into
   arbitrary regions with bidi support).
 * There is now an SVG12CSSEngine which has support for new
   properties in SVG 1.2

3. Improvements:

 * Massive performance improvement (>10X) for drawing on Mac OS X.
 * Document.getElementById now uses a Hashtable to speedup lookups.
 * JavaScript can now be used in an Applet out of the box.
 * Added support for 'font' shorthand property.
 * Added support for 'deselectAll' SVG DOM call.
 * getEncolsureList and getIntersectionList are implemented.
 * Added support for get[Screen]PixelUnitToMillimeterX/Y
 * SVG DOM getTotalLength, and getPointAtLength are now implemented.
 * Support for preserveAspectRatio DOM methods.
 * Squiggle browser now has a 'Save As' menu item.
   * Can toggle if xml:base should be added to saved SVG.
   * Can 'pretty print' saved XML for readability.
 * ExtensibleSVGDOMImplementation no longer exists,
   the SVGDOMImplementation is now extensible.  There is a
   new baseclass ExtensibleDOMImplementation that provides
   extension capabilities to any DOMImplementation subclass.
   As a result the name of the services meta-file has moved to:
    'org.apache.batik.dom.DomExtension'
   from:
    'org.apache.batik.dom.svg.DomExtension'.
   People with DOM extension will have to update the service file
   accordingly.
 * ExtensibleDOMImplementation now allows 'extension' elements in
   the SVG Namespace (they are always lower priority than 'buit ins').
 * When a new Document is loaded a new BridgeContext is created for it.
   As a result each document now get's it's own CSS engine.
 * ttf2svg now supports 'auto ranging' so it looks at the font
   to decide what to output.
 * DOM will now detect when the child passed to insert/remove
 * AbstractParentNode will now throw a DOM Hierarchy exception
   if you try to append a node as a child of it's self (PR 34030)
 * Anti-aliased clips (hqClip patch).  This can be disabled by setting
   the transcoding hint to vector or print (so content doesn't get
   rasterized). PR 29110.
 * Control of tiled image rendering based on rendering hint.
   Using this hint may greatly increase the amount of memory used.
 * The Marker interface now has a 'getCharIndex()' method to
   get the index of the character the Mark is associated with.
   node is not the child of the node insert/remove is called on.
 * DrawImage now defaults color model to sRGB_Unpre if the destination
   doesn't include alpha.
 * The pattern element now shares one rendering tree across all
   references.
 * Some improvements for Kerning in SVG Font (faster)
 * Arabic diacritics are now positioned relative to the right edge
   of the base glyph. Bug 28429
 * Basic DocumentType implementation, if present DOMUtilities will
   now emit a proper doctype specification
 * GVT Tree walker can now be given any node in the GVT tree and it
   walk just that subtree.
 * Many places now use getResource as Stream instead of Resource
   bundles where localization is not wanted/needed.
 * Tweaked UpdateManager repaint scheduling alg.
   It now tracks when the rendering goes 'out of date'
   with the document and runs runnables until it is out of
   them or MIN_REPAINT_TIME is exceeded.
 * Arc2D now translated to path with elliptical arc commands
   in SVGGraphics2D interface.
 * JSVGScrollPane now uses bbox of geometry if no viewBox is provided.
 * Refactored the text and flow bridges so make things cleaner.
 * Implemented textLength to return the value of
   getComputedTextLength when the textLength attribute is not
   set.
 * Potentially large optimization in BBox generation
 * The DOM tree viewer now has an option to hide text nodes that
   only contain whitespace.
 * The DOM tree viewer now includes the id of an element in the
   tree view if it has one.
 * Improvements to empty bounds handling, should decrease update areas.
 * GVT Render requests are now compressed.  This helps when doing
   live resize of large documents.
 * Some refactoring/restructuring of svggen.XmlWriter to potentially
   make it a pretty printing DOM serializer.
 * Latest pdf-transcoder from FOP which supports '-dpi' switch.
 * ScrollPane now should do a better job of fitting document w/o
   scrollbars
 * title and desc changes are now dynamically tracked.
 * ScriptFactorys now loaded via Services interface.
 * Made the JDK image loading Mediatracker static
   (so others could use it easier).
 * ParsedURL now uses the current Batik version as it's default
   UserAgent
 * Rationalized Text Selection code.  Copy to clipboard is now done
   by JGVTComponent only if 'unix style' text selection is requested
   (default).

4. Bug Fixes:

 * Fixed all known memory leaks with loading images.
 * Changing documents in JSVGScrollPane now works properly.
 * Fixed a small memory leak when changing xlink:href on a
   use referencing a local element.
 * No longer uses Thread.interrupt.  On some JVM's this can confuse the
   class loader.
 * Adding elements in the 'null' namespace nolonger causes a NPE exception.
 * Fixed colorspace error in ColorMatrixRed.
 * Line element no longer has a fill associated with it.
 * Fixed bug #29416 - problem with empty quotes in CSS.
 * Fixed bug #34210 - element selectors are now case sensitive
 * Index out of bounds error fixed in linear gradient.
 * AOI problem in PrintTranscoder now fixed.
 * Null Pointer exception when PrintingTranscoding documents
   using SVG fonts is fixed (the BridgeContext was being
   disposed of too early).
 * PrintTranscoder now uses UserAgent to report exceptions
   rather than silently swallowing them.
 * Fixed some minor bugs in the GlyphLayout code for flow regions.
 * Very minor tweaks in JSVGScrollPane.
 * Applied patch 28188, fixed tooltip text & title text, thanks Glen
 * Applied patch 28487, fixed enabled/disabled state for
   toolbar buttons, thanks Glen
 * Fixed bug in text selection (programatically selected text wouldn't
   clear properly.
 * Fixed bug 23035 - Xlink attributes initialized with wrong values.
 * Fixed Bug 28785 - 'a' element not clickable with namespace prefix.
 * Bug 30584 - Concurrent Modification believed fixed (couldn't get
               test case to fail after fix).
 * Bug 29891 - Rasterizer problem if w/h == viewBox w/h
 * No more 'flicker' when panning a dynamic document.
 * CmapFormat4 now clips charCode 0->65534.
 * All Object.wait calls are now in while loops to prevent spurious wakeups.
 * DOM keypress events will now be generated for so called
   Java 'action' keyEvents (previously only keydown/up were
   generated).
 * Fixed a bug in the PNG Encoder for some 1,2 or 4 bit/pixel images.
 * Fixed bug in PackBits TIFF files with multiple IFD's
 * The 'debug' messages are now synced with GUI messages.  Also they
   are localizable.
 * Tweaked the way we generate paths to avoid a bug
   in the Mac OS X Java implemention where a close
   followed by a moveto didn't join the path properly.
 * Fixed width/height change onload bug in transcoders submitted
   by Simon Mieth.  Thanks!
 * Fixed a bug with CSS shorthand properties not being set by presentation
   attributes.
 * DOMImplementations now return empty documents if
   qualifiedName in createDocument is null (PR 32108)
 * Fixed 'flashing' with JSVGScrollPane.
 * Fixed PR: 30923.  Text children now respect display and
   visibility properties (including dynamic changes).
 * Fixed visibility update bug reported by George Armhold.
 * Fixed visibility bug on image elements.
 * getBBox should now work per the specification.
   a) fill="none" will still give bbox
   b) It is now the tight bounds of the geometry
   c) It does not include the stroke anymore.
   d) When called on 'undisplayed' elements returns null (not sure
      what the spec really says about this).
 * Modification of use element's width/height now works.
 * Fixed potential interrupted bug in the RunnableQueue class.
 * The document loader cache now uses soft references to avoid
   being a memory leak.
 * Improved the xml:space support.
 * textPath no longer supports 'position attributes' on it's self
 * textPath now supports progression position attributes provided
   by parent/child tspan/text nodes.
 * systemLanguage, requiredFeatures, requiredExtensions now all fail
   to match when given an empty string (as specified by the SVG
   specification). Bug #33242 (thanks Rick Graham).
 * Fixed potential synchronization issues in JavaScript intervals.
 * Small optimization in Event dispatch.
 * Removed debug print from SVGOMAnimatedPreserveAspectRatio.java
 * Synchronization fix in SoftReferenceCache.
 * SAXParser now includes 'ignorableWhitespace' when building the
   DOM tree.  I also tweaked the way text and CDATA sections are
   created.
 * UpdateManager is now always the 'source' of UpdateManagerEvents
   previously in some cases it was an inner class.
 * Fix for masks when using Alpha Premultiplied (Mac OS X).
 * Improved consistency of events from the RunnableQueue.
   Calling suspend/resumeExecution should now always generate
   a runHandler event (although the events may be "compressed"
   so suspend/resume may only generate one resume event).
 * Fixed bug in handling kerning elements with multiple glyph entries
   in g/u 1or2.
 * Removed use of 'getTagName' to use 'getLocalName' to avoid issues with
   prefixed svg elements.
 * Fixed a mistake in the generation of SVG fonts that include
   arabic forms (PR 33733)
 * Fixed handling of complex paint types (base types with
   fallbacks).
 * Fixed CSS SVG DOM interfaces for complex paint types
   (see bug 33923).  Added new test for same.
 * Text Selection events are now generated even when the
   done event is not over a graphics node.
 * The double '#' bug is gone in the SVG Pretty Printer. PR 33890
 * The worst of the 'extra spaces' problem with the pretty printer
   is solved.
 * Fixed updates to SVG Font based text (PR 34041)
 * Bug fix in NumberParser (thanks dvholten)
 * Fixed bug 34115 - CSSStyleDecl doesn't collapse properties.
 * JSVGCanvas no longer holds cached viewBox so it responds
   properly when viewBox is updated in SVG content.

5. Misc:

  Documentation updates
  JavaDoc will now reference W3 and JDK docs
  Updated MAINTAIN file
  Splash/startup screen now embed font (a little simpler SVG as well).
  Some Rhino improvements.
  New Tests for bugs.

  Thanks to everyone on batik-dev/users for reporting problems and
  working on finding solutions.


1.5 -> 1.5.1
------------
1. Security:

   A script security issue was reported in the Batik Squiggle
   browser. Squiggle uses the Rhino scripting engine and some features
   of that engine can be leveraged by malicious scripts to gain access
   to otherwise protected resources (like the file system).

   The Batik team has worked with the Rhino team to fix the isssue
   that was reported and the Batik 1.5.1 patch release addresses the
   issue.

2. Features:

   Rhino JavaScript Debugger now integrated with Squiggle.
   Better line numbers in error messages.
   Zachary DelProposto's Scroll pane class is added.  Allows for
      scrollbars on SVG documents.
   Cool solitaire examples in SVG.

3. Performance fixes:

   Parents who have children added/removed no longer invalidate
      their entire area.
   When a element is removed or CSS properties changed all next
      siblings are not repainted unless CSS rules change them.
   First event dispatch is much quicker than the past.
   Switched to Xerces 2.5.0 to improve performance of data protocol.
   Changes to paint properties on text is now _much_ faster.
   When using many objects from an external file the file will only
     be loaded/parsed once.
   Modifying x/y and some viewBox changes on SVG elements is now much
     faster.
   Better JPEG embedding in PDF.

4. Conformance:
   Batik now passes all non SMIL-Animation tests from the SVG Working
     Group beSuite.

   @font-face CSS property and font-face elements are now compliant
     with SVG specification.

   Changes to the 'class' attribute now update rendering tree
     correctly.

   selectSubString now implemented.

   Dynamic modification of display, and marker properties supported.
   SVG 'a' element respects 'preventDefault' on event object.
   Pattern element no longer applies object bounding box transform
      if viewBox is specified.

5. Bugs:

   Fullscreen mode (F11) works again.
   getExtentOfChar() returns bbox in text elements coordinate system.
   SVGPoint now supports matrixTransform in more cases
   clientX/Y now correct when target is a text element.
   Bugfix in parsing some TrueType fonts fixed.
   Now applies the 'all' media type to all content.
   Image transcoders default to 400x400 rather than issuing an error
     (consistent with viewer).
   The properties opacity/filter/masking/pointer-events now work
      on SVG elements.
   Clearing text selection now works
   Zero width/height image elements now work properly.
   BBox info is correct for zero width/height items.
   Fills/strokes text when text-rendering is set to geometricPrecision
      rather than using drawGlyphVector.
   getCssText() returns the relative version of URI's
   SVG Graphics2D outputs correct rendering hints for text.
   TextNodes returns the correct bounds.
   Proper text child set as 'target' of events.
   Events handled correctly for documents that reference the same
      image multiple times.
   Image are displayed as 'broken links' instead of being an error.
   FeColorMatrix now respects color-interpolation-filters property.
   elem.style.setProperty now works for shorthand properties.
   Fixed race condition in JSVGComponent.set[SVG]Document.
   Fixed several memory leaks dealing with use element.
   Glyph element's 'd' attribute uses inherited winding-rule.
   SVG 'style' element no longer generates multiple 'xml:space' attrs.
   SAXDocumentFactory now generates only one CData node for each
     CData section in source document.
   Memory leak with addEventListener and objects that ref event target fixed.
   Click events now allow a small amount of 'slop'.
   Fixed bug in rendering with Double Buffering.
   Clicking on the Canvas no longer clears the system clipboard.
   No longer recascades elements in use tree from foreign documents
   Now supports CSS properties with the max negative 32bit int value
   Now supports more JPEG image types.
   No longer throws a Class Cast exception when using named colors
     as the fallback for icc-colors
   clearTimeout, clearInterval no longer throw exceptions for null
     objects.
   clipPath now respects clip-rule when using 'use' element.

  Bug PRs: 12536, 23030, 23038, 23079, 23177, 24919, 25251, 25463


1.5beta5 -> 1.5
---------------

1. Features:

       - With JDK 1.4 text-rendering="optimizeSpeed" will render
         non-anti-aliased hinted text (for axially aligned text).

       - The pointer-events property is now handled correctly for elements
         without fill or stroke paint.

       - Improved stroke accuracy when shape-rendering="geometricPrecision"

       - JSVGComponent.setSVGDocument with 'null' now releases all
         heavy resources and makes the Canvas display only Background.

       - Many memory leaks fixed.

       - Transcoders and JSVGComponent will now accept any Document
         and convert to a Batik SVG Document if needed.

       - Script interpreters are loaded lazily.  This means that unless you
         use them (by having event attributes or script elements) you
         don't need any script engines.

   Performance Improvements:

       - Image drawing is now 5-10x faster, for most raster images.

       - Significant performance improvement for patterns that are
         filtered or have filters applied to them (take Batik70 for
         example).

       - AbstractParentNode insertNode, removeNode, replaceNode are
         now much faster for Parents with many children.


   Library changes:

       - Updated to the Rhino 1.5R41 library

   Others:

       - Added control of floating point precision used in SVGGraphics2D
         (see the org.apache.batik.svggen.SVGGeneratorContext class)

       - Batik now almost never opens image URL's twice.

       - JSVGComponent/BridgeContext now has three levels of interactivity.
         STATIC, INTERACTIVE, DYNAMIC.  With increasing memory overhead
         and build time requirements.

       - Improved test environment with automated memory leak, performance,
         threading and interactivity tests. There are now over 1000 tests
         in the regard regression test suite.

       - Window.parseXML now returns a Document when no 'host'
         Document provided.

2. Bugs:

       See: http://nagoya.apache.org/bugzilla for details on each bug.

       - 6526 pointer-events does not work for fill="none" stroke="none"
       - 6683 JSVGCanvas - Problem adding to JScrollPane
       - 6951 see samples/tests/spec/paints/linearGradientLine.svg
       - 8854 Fix feImage implementation according to latest SVG 1.0/1.1 c
       - 9981 Improve Documentation on Scripting with Java
       - 9994 text-decoration:underline is incorrect with tspan elements.
       - 12013 Squiggle renders jagged curves/paths 12079 transcoder.wmf
       - 13870 Language Code errors
       - 14011 problem using rasterizer with the headless option
       - 14673 not-so-pretty text rendering
       - 14788 TranscoderInput(XMLReader reader) does not seem to be implem
       - 14789 TranscoderInput(Document document) is incorrect
       - 15348 SVGGraphics2D should not export scientific notation on CSS p
       - 17168 SVGGraphics2D has package level protected on DOMGroupManager
       - 17863 API to get Version info
       - 17965 SVGGraphics2D adds 'font-size' attribute to 'line' and 'circ
       - 18143 Removing attribute using Element.removeAttributeNode doesn't
       - 18566 JSVGComponent packs its parent window
       - 18640 Problem with setSVGDocument
       - 18840 A few issues with the Batik source
       - 18841 Problems with imports in Batik source
       - 19017 error when attempting SVG to PDF conversion
       - 19363 zero width on rect element causes error
       - 19392 Bug in "org.apache.batik.dom.util.DOMUtilities.java"
       - 19865 Exception rendering linked PNG file.
       - 20147 JSVGCanvas doesn't function with JInternalFrame
       - 20201 incorrect gAMA chunk for sRGB
       - 20331 bug on batik SVG DOM implementation on the SVGPathSegArcAbs
       - 20332 bug on batik SVG DOM implementation on the SVGPathSegCurveto
       - 20811 A rect disabled because of zero width or height doesn't get
       - 21125 XML comment cause css parser to abort parsing
       - 21259 Drawing on an SVGGraphics2D and then using JPEGTranscoder pr
       - 21352 XML comments inside script elements treated as script code
       - 21358 Dynamic Update of content referenced by a <use> does not wor
       - 21361 Bug on SVGPaint implementation
       - 21362 Bug on CSSStyleDeclaration on URI reference
       - 21374 Implement conformant Java Handler code
       -       Viewer now properly displays w/h x/y locations in
               'viewbox' coordinates.
       -       Fixed dirty regions for nodes that change size then
               position in the rendering tree (where the new position
               has a different rendering transform).
       -       Fixed handling Fragment URL's with colon's in them.
       -       Batik no longer considers all @font-face rules a syntax error.
               Batik now just ignores them.
       -       Fixed use elements in Documents with no base url.
       -       Runs of RTL Text now work with JDK 1.4.
               Nested embed and bidi-override properties should now work.
       -       Fixed bug setting viewBox on outermost SVG element as
               described in:
       http://koala.ilog.fr/batik/mlists/batik-users/archives/msg03513.html
       -       JSVGComponent/Canvas now repaints when it changes size
               (even when no viewBox).
       -       Modifying zero W/H rect, circle, ellipse now works properly.
       -       Fixed the handling of kerning attribute.
       -       JSVGComponent.setSVGDocument with a Document that has been
               previously viewed in the Canvas now works
       -       'style' and 'script' elements no longer include the contents
               of XML Comments (unless inside a CDATA block).
       -       Fixed a with absolute x/y attributes in non-text
               progression direction.
       -       Fixed JSVGComponent when it's working threads are
               interrupted.
       -       RhinoInterpreter once again binds the Global Object
               as 'window'


3. Extensions:

       - Updated multiImage element to match WD.


4. Documentation:

       - Updated the FAQ with frequent questions on UpdateManager, DOM
         updates and visual updates.

       - Updated the implementation status page and the home page.


1.5beta4b -> 1.5beta5
---------------------

1. Features:

   Library changes:

       - Xerces 2.3 is now the default parser. The parser can still be controlled
         through the org.apache.batik.util.XMLResourceDescriptor class.

         ** NOTE **

         While the general performance of the Xerces 2.3 parser seems equivalent
         to those of the Crimson parser used previously, there is a notable exception
         in the handling of long attributes. This makes a very visible difference
         for SVG content that uses embeded images through the 'data:' protocol which
         can be extremely slow with Xerces 2.3. The bookOfKells.svgz example, which
         used the data: protocol for rather long images has been removed from the
         distribution as it does not load in a reasonable amount of time when using
         Xerces.

       - Rhino version has been updated from 1.5R3 to 1.5R4 allowing to fix
         BR #11968 (DOM access functions should return ECMAScript strings).

       - Removed SAX and DOM sources from the Batik project. Now use xml-apis.jar
         from xml-commons.

   Others:

       - currentScale/Translate now implemented (get and set).

       - Implemented getScreenCTM, fixed getCTM (SVGLocatable)

       - onzoom, onscroll, onresize events are now implemented.

       - Integrated pdf-transcoder from FOP.

       - Ctrl-K/L work in fullscreen mode.

       - initial support for SVGList ( provided for SVGPointList in
         <polygon> and <polyline>, SVGPathSegList in <path>, SVGLengthList
         in textual elements, SVGTransformList in graphical elements )

       - RFE #12735 : added support for dynamic modifications of 'xlink:href' in image element

       - Now skips reading the SVG DTD unless validation
         is turned on (improves load times for small docs).

       - glyph-orientation-horizontal now works.

       - linearGradient's can now be anti-aliased (radial gradient
         anti-aliasing also improved).

       - PNG Transcoder can now produce 1,2,4 & 8 bit indexed PNG's.

       - rasterizer can now be used in headless mode (JDK 1.4)

       - JPEG files now have X/YDensity set according to -dpi option.

       - Batik Docs now include a dependency graph for the jar files.

       - In ECMAScript, add the ability to pass an Object instead of a
         Function to the Window.getURL() method in which case the
         operationComplete method is called once the URL is retrieved.

       - SVGUserAgent now controls the default font-family

       - Added max-width and max-height support in the rasterizer infrastructure
         (contribution by Henri Ruini, Henri.Ruini@nokia.com)

       - Improvements to the WMFTranscoder by Luan O'Caroll

       - Added better error reporting for external scripts: errors now include the uri
         of the external scripts in addition to the line number which is convenient
         when an SVG file references multiple external scripts.

       - Modified the way SVG public identifiers are mapped to system identifiers.
         The resource file now contains the mapping to the correct SVG DTD instead
         of only containing the allowed SVG 1.0 system identifiers for a hard
         coded DTD.

       - Added support for cursors.

Bug Fixes:

       - clientX/Y values in MouseEvents are now returned in screen
         pixels (it had been the viewBox coordinate system which was
         convenient but wrong and problematic for some cases).

       - Changed default extension for TIFF files to '.tif' from '.tiff'.

       - Fixed bugs in screen updating when the size/location of the
         root graphics node changed, and when transform on group
         changes after bounds on a child.

       - ToolTips no longer 'hang around' under JDK 1.4.1

       - The JSVGCanvas no longer steals focus and pops forward whenever
         the cursor passes over the canvas.

       - The JSVGCanvas will no longer thrown an exception if an SVG
         document is set prior to the component's size being set.

       - Text anchor for vertical text.

       - For corrupt/incomplete JPEG images now shows what it can.

       - Fixed bug with Indexed PNG's that have a bKGD chunk.

       - getRelatedTarget fixed for mouseout event.

       - glyph-orientation-horizontal/vertical no longer require a unit
         as per the SVG specification.

       - Fixes for 'jar' protocol.

       - Fixed compressed Tiff writing.

       - Missing Glyph's are now rendered correctly.

       - Text selection now works better with altGlyphs.

       - PrintTranscoder no longer scales 'real world' units wrong.

       - Fixed a bug involving the 'use' element with a width/height in
         an SVGFont referenced from external documents.

       - Collaboration with Philipe Converset (Qarbon) on an extension to define
         margins in filter regions. This is now supported in the Batik namespace.

2. Bugs:

        12389  Focus issue in Squiggle's URL text field
        12121  Cursor in URL field disappears
        12168  MarkerShapePainter delivers wrong PaintedArea
        12239  [PATCH] Moved some method local variables into class
        12954  add support for stroke-width:0
        15162  PNGTranscoder gives error message about TIFF transcoder
        17167  stroke-dashoffset does not support negative length
        13713  <use> element fails when using percentage values x/y coords
        17183  baseline-shift doesn't refer to parent "line-height"
        15063  Version-dependent code in package org.apache.batik.gvt.font
        12736  Allow non-element nodes to be added to g and svg elements.

       - Added Units resolutions to CSS rects

       - 'd' and 'points' can now be empty on <path>, <polygon> and
         <polylines>

       - Now support the transform attribute on the <switch> element

       - Fixed class loader delegation bug in RhinoClassLoader

       - Patch from Keiron Liddle fixing PNGTranscoder KEY_INDEXED hint type
         issue (was Boolean instead of Integer)

3. Extensions:

       - Binary distributions now include jar files that can display
         extensions.

       - The multImage element can now reference SVG images as well
          as raster images.

       - flowText now supports vertical-align.

       - flowText now uses 'flowRegion' and 'rect' to describe flow
         areas.

4. Documentation:

       - Status of Batik implementation of SVG DOM.

       - Diagram showing the various Batik jar files and their relationships.


1.5beta4 -> 1.5beta4b
---------------------

This is a patch release fixing a bug on linking.


1.5beta3 -> 1.5beta4
--------------------

1. Features

  - Squiggle Browser:

       - the F11 key lets users enter the full screen mode or exit the
         full screen mode if they are already in that mode.

       - the Browser can now handle XML files which contain a stylesheet
         declaration referencing an XSL transformation. If that transformation
         generates an SVG document, Squiggle will display it.

         By default, this feature is disabled because it requires that
         the user either uses the JDK 1.4 (or greater) version (which at
         this time is not a requirement for Batik) or that an XSL transformation
         engine (such as Xalan) be in the classpath.

         To enable the feature, uncomment the following line (i.e., remove the '#'):

         #org.apache.batik.apps.svgbrowser.XMLInputHandler

         in the:

         resources/META-INF/services/org.apache.batik.apps.svgbrowser.SquiggleInputHandler

         file.

  - Scripting:

       - Added the ability to use an ECMAScript object providing an handleEvent
         method for the listener argument of the addEventListener method on DOM objects
         (previously only ECMAScript functions were accepted as parameter). [RFE9149]

2. Bug Fixes

  - Images - bounds/hints now updated correctly when changed via script
  - Local refs now work with null Document URL.
  - Double buffered rendering now updates correctly on Mac OS X.
  - ParseXML no longer assumes doc is SVG.
  - Squiggle can now do Http authentication.
  - SVG Font bounds fix
  - Text layout fix (anchor and textLength)
  - Adding/Removing children no longer invalidates entire parent region.
  - handling of position attributes (x,y,dx,dy,rotate) on emtpy tspans has been fixed.
  - Fixed improper handling on <altGlyphItem>
  - Removed unnecessary font matching with <altGlyph> which can be found
  - 'stroke-dasharray' now works with units,
  - fixed bugs (CSS !important rules, DOM replaceChild on the root element,
    SVG paint parsing, CSS percentages).


1.5beta2 -> 1.5beta3
--------------------

1. Features:

  - Squiggle Browser:

       - now keeps a history of recently visited URIs

       - offers more control over the security features

  - Enhanced Security Support:

       - downloading of all external resources can now be
         controlled through the UserAgent. This includes
         scripting (as before) but also <image>, <use>, and
         all elements which may reference external resources
         (over 15).

       - users security policy now takes precedence over the
         application policy. Users can set the java.security.policy
         system property when starting a Batik application and it
         will take precedence.

  - Interactivity and Scripting Support Improvements:

       - filter, mask, gradients, clip, pattern and marker are now
         updated when the geometry of the referencing graphical
         element is dynamically changed.

       - implementation of keyboard events (KeyEvents from DOM Level 2
         Working Draft). In the near future, the batik team will
         implement the TextEvents from the DOM Level 3 Events module.

       - Newly supported elements (can now be modified by scripts):
         <svg>, <image> and <text> element children (such as <tspan>);

      - Support for addition/removal/modification of stylesheets

  - Misc:

       - external scripts can now be gzipped.

       - added getPixelUnitToMillimeter to UserAgent classes
         NOTE: the getPixelToMM and getPixelToMillimeter methods will be
               removed after 1.5b3 is released!

       - Improvements in the support for the <flowText> extension

      - Added support for attribute/id/adjacent selector and :first-child
        dynamic updates,

2. Bug Fixing:

  - #1075, #4834, #5233, #5347, #5806, #6642, #6683, #7053,#8330, #9740,
    #9058, #9067, #9304, #9429, #9520, #9779, #9804, #9272, #9276,
  - bug in feColorMatrix
  - DOM: getElementByTagName, invalidateElementsByTagName, cloneNode(false)
  - mouseout bug on <tspan> fixed
  - File->Open dialog bug on JDK 1.4 fixed.
  - Memory leak fixes
  - ttf2svg now emits kern elements with the proper sign
  - MultiImage now respects xml:base
  - Fixed mouse location bug

3. Documentation Update:

  - Many additional links have been added to the Batik documentation
    as well as improvements in its structure and content, thanks to
    the work of Robert Di Blasi.


1.5beta1 -> 1.5beta2
--------------------

** Note on the new security support **

- Scripts are now run in a sand-box by default for the Batik sample
  applications (the Squiggle SVG Browser and the Rasterizer). Users of
  the SVG toolkit who what to run scripts securely need to add
  security support in their application and may use the work done for
  Squiggle as an example
  (e.g., see the org.apache.batik.util.ApplicationSecurityEnforcer class).

- There is a known limitiation: scripts loaded from a 'file:' url
  cannot access (i.e., load files) under the same root. This is not
  true for scripts loaded from a server (e.g., 'http:' urls).

1. Features:

  - Scripting support for styling properties:

      - Most of the CSS properties and style attributes can now
        be changed dynad:/work/dev/svg/apache/builds/batik-1.5beta3/mically. See:
        http://xml.apache.org/batik/supportedProperties.html

      - Added support for style and class attributes dynamic updates

  - DOM support:

      - Implementation of SVGLocatable including SVGMatrix

      - All class members of type: SVGLength now works on most of the
        graphical elements (rect.x.baseVal.value)

      - Implementation of CSS DOM (getStyle, getComputedStyle...)

  - Events/Interactivity:
     - DOMFocusIn, DOMFocusOut and DOMActivate event types are not supported

  - Security:

     - Secure scripting is now in place. Scripts in ECMAScript or
       Java code are run in a sand-box by default. The Batik browser
       (called Squiggle), has the following security options:
        . secure execution of scripts can be on or off.
        . scripts for a given language can be disabled/enabled.
        . scripts can be constrained to come from the same origin
          as the document referencing them.
       In the Squiggle SVG browser, the security options can be set
       through the Preferences dialog, in the browser options panel.

  - Misc:

     - xml:base is now supported for the image element.

     - <flowText> extension element that flows text into multiple boxes.
       Trying to track the SVG 1.1 Working Group on this element.

     - getURL, parseXML supported in the Window object.

  - Testing:

     - Improved test infrastructure. There are new tests for handling
       automatic regression testing of scripting features and there are
       more tests (801 now) in the regard regression test suite.

2. Bug Fixing:

  - Fixed bugs with textPath w/ text-anchor, and textPath w/ multiple
    trailing tspan elements.

  - Work around for RenderingHints when Batik Jars loaded multiple times
    in the same JVM (through different class loaders).

  - Fixed a bug with X/Y Resolution for Tiff.

  - UIEvents are not dispatched properly on <text> children (<tspan>...)

  - <a> is now supported on <text> element children


1.1.1 -> 1.5beta1
-----------------

** Note on enhanced scripting support **

- Support for DOM Core and DOM Events (Mutation events and UI events)

- Limitations:
   - No support for dynamic modification of CSS properties.
     In particular, setAttributeNS of presentation attributes
     such as 'fill' or 'stroke' or modification of the 'style'
     attribute are not supported.

1. Features:
  - Enhanced scripting support: it is now possible to modify
    SVG documents through scripting
  - Tiff Transcoder now takes FORCE_TRANSPARENT_WHITE hint.
  - Tiff Transcoder now writes resolution tags.
  - Implementation of SVG 1.1 solidColor element (in Batik extensions)
  - Implementation of multiImage element (a Batik extension).
  - Event compression mecanism (e.g., concatenates mouseMove events)

2. Bug Fixing

  - textLength now works in all cases except nested textLengths.
  - 'image' element now respects xml:base.
  - Renderer now reuses image buffers more often.
  - Speed improvements in cases with lots of tspans.
  - Filtered Raster Images now _much_ faster.
  - Things mostly work with current Mac OS X JVM (still some trouble with
    images/filters).
  - Applying a ICC Profile no longer messes up alpha channel in some cases.
  - PNG Transcoder now always writes sRGB chunk.
  - feImage image positioning fix
  - <use> bridge fix,
  - SVG generator <use> export fix


1.1 -> 1.1.1 Release
--------------------

1. Bug fixing:

    - dx/x and dy/y now work when combined.
    - clip-path now takes transforms into account
    - AbstractRable constructors problem fixed.
    - Put in workaround for worst of Mac OS X text problems (layout
      still isn't 100% correct in most cases).
    - Removed code that is no longer needed in GlyphLayout
    - Fixed the last text layout issues on Mac OS X (GlyphVector was
      returning the metrics for the first char for all chars in the vector.
      We now use the difference in defaultGlyphPositions to get the
      character advances).
    - Fixed JViewerFrame issue with large (width/height) documents.

2. Improvements
    - Text bounds computation is now much faster


1.1rc4 -> 1.1 Release
---------------------

1. Bug Fixing and Improvements

    - Code factorization in parsers.
    - Parsers bug fixing.
    - Added examples (maps, bookOfKells example, sunRise, mathMetal).
      Maps are a contribution of Andreas Neumann,
      MathMetal is a contribution of Christophe Held.
    - Added default xmlns and xmlns:xlink on root <svg> in generator
    - Integrated Ant task contribution from Henri Ruini
    - Improved error dialog (now includes details with the error stack trace).
    - Printing fix.
    - text-anchor fix.


1.1rc3 -> 1.1rc4 Release
------------------------

1. Features:

    - rewrite of rasterizer thanks to Henri Ruini's contribution
    - improved image handling strategies in the SVG generator thanks
      to Paul Evenblij's contribution.
    - 'requiredFeatures', 'requiredExtensions' and 'systemLanguage' on
      graphical elements
    - anchor on raster images and SVG images now works properly
    - anchor inside a SVG image now works properly
    - <a> inside <text> or <tspan> is now displayed
    - many tests added (transcoder...)
    - SVG viewer: added dialog box at start up time while loading classes
    - SVG viewer: limited number of files in history

2. Bug fixing:

    - memory leak fix
    - DOM core serialization
    - Parsing of CSS comments
    - SVG generator fixes (bug 4945 and 4389)
    - rasterizer fixes
    - text now works with JDK 1.4b3. Remaining issue with
      BufferedImages.

3. Improvements:

    - general performance improvements in the build and rendering
      phases of the viewing component (for example float parsing
      has been improved).


1.1rc2 -> 1.1rc3 Release
------------------------

1. Features:
   - Support for xml:base
   - TextSearch dialog is available (with a zoom option)
   - Full support for Alternate Stylesheets
   - Full support for CSS Media (including a way to define custom media)
   - Changed Text Selection UI. (selectable in the preference dialog)
     Added Text Selection API to GVT & swing packages
   - KeyStroke on the JSVGCanvas (for pan and zoom using keyboard)
   - SVG Font: The font lookup now takes into account namespaces
   - Provide a way to set the quality of an exported JPEG image
   - Printing now uses the CSS print medium
   - More complete handling of partial URLs
   - Two new extensions solidColor (a single color 'paint server' acts
     similar to the gradients and pattern fills/stroke), & paintSwitch
     similar to a switch element but children are paint servers instead
     of graphical elements.

2. Bug fixes:
   - Fix in gradient element boundary conditions
   - Fix and performance improvements in lighting filters
   - Fix in PNG encoding for BufferedImage' subimages.
   - feDisplacementMap fix (array out of bound exception)
   - font lookup now uses namespace properly
   - 'enable-background' now work on <svg> element
   - zero length on <rect>, <circle> and <ellipse> disable the rendering
   - linear gradient with x1=y1=x2=y2
   - printing now supports SVG URI fragment
   - Javadoc improvements and clean-up
   - Source clean-up
   - DOM: getElementsByTagNameNS now works properly
   - SVGDOM: huge cleanup of the implementation
     (preparation for dynamic features)
   - CSS parser bug fix
   - Bridge: 'overflow' on SVG <image> should now work properly
   - GVT: cleanup the API - GraphicsNodeRenderContext is now obsolete


3. Testing

   - Reorganized tests (see samples/tests subdirectory)
   - Improved test reporting (i.e., better HTML report)
   - Simplified test infrastructure configuration files.
   - Lots of new tests (see samples/tests/structure/styling and
     samples/tests/spec/structure for examples) and
     samples/batikCandy.svg.


1.1rc1 -> 1.1rc2 Release
------------------------

1. Bug fixes:

  - 'preserveAspectRatio' now works properly on both raster and SVG images
  - bug fix with the 'clip' property on <symbol>, <image>, <marker>
  - thumbnail bug fix (sometimes the area of interest became hidden)
  - filename filter added to the file selection dialog in the svgbrowser when
     exporting as PNG and JPG
  - Infinite loop removed. Elliptical arc may cause an infinite loop if the end
  point of the arc was the same than current point in the <path> datas.
  - SVGGraphics2D can now generates SVG Font on demand

2. Improvements:

  - Added new custom filter extension (look at the samples/extensions/histogramNormalization.svg)
  - Added tooltips on <title> and <desc>.


1.0 -> 1.1rc1 Release
---------------------

1. Enhancements:
   a. HTTP headers fields (useragent/accepted...) now implemented.
   b. Anti-aliased gradients (when color-rendering set to quality).
   c. Small patterns are now much faster
   d. Ability to flush cached image data.
   e. full horizontal and vertical kerning now implemented for SVG fonts
   f. added support for orientation and lang <glyph> attributes
   g. improved support for Arabic text, includes handling of Arabic shaping
      and ligatures for both SVG and system fonts
   h. improved text selection
   i. improved text rendering speed

2. Bug fixes:
   a. PNG files now use the proper gamma when reading/writing
   b. Off by one bug in image rendering fixed (background shows
      through on the left and top of image).
   c. Fixes in Base64 data handling (encoding/decoding)
   d. Absolute URL's shouldn't require document URI.
   e. color-interpolation-filters should now work :)
   f. fixed bug with font sizes < 1
   g. fixed problems in text chunk algorithm
   h. fixed bug with empty text nodes
   i. text decorations are now handled properly
   j. bidirectional text (including selection of it) is now handled properly
   k. fixed problem with alignment of vertical text
   l. fixed problem with em and ex unit conversion when font size
      is not a float value (eg medium)

3. Misc:
   a. Now have automated tests for base64
   b. Now have automated tests for ParsedURL
   c. added some more test files for text and fonts


beta2 -> 1.0 Release
--------------------

1. Completed SVG Font Support.

2. Added vertical Text Support.

3. Major rework of the Batik documentation.

4. Added thumbnail

5. Bug fixes.


beta2rc9 -> beta2
-----------------

1. Contributions

   a. New contribution of a True Type Font to SVG Font converter that allows
      a set of characters from a True Type Font to be converted to the
      SVG Font format. This contribution was made by David Schweinsberg
      of SteadyState (david@steadystate.co.uk). This contribution comes at
      the right time (i.e., as we just added SVG Font rendering suppor).

2. Improvements & new features

   a. SVG Font support. Initial revision of the soon complete support of
      SVG Fonts.

   b. New image encoder/decoder infrastructure. This allows a flexible
      handling of new raster image formats.

   c. Improved PNG encoder/decoder which now support the gamma chunk
      properly.

   d. Additional tests for SVGGraphics2D.

   e. Additional samples (mostly new SVG Font support examples).


beta2rc8 -> beta2rc9
--------------------

a. Polishing of existing features.
b. Bug fixes.
c. Improved test infrastructure.


beta2rc7 -> beta2rc8
--------------------

1. Improvements

   a. Full blown in-bound and out-bound linking support. See the
      two new linking examples in the samples/test directory.

   b. Improved CSS error handling.

   c. New test infrastructure.

   d. Beanified SVG JComponent: see JSVGCanvas.

   e. Enhanced features in SVGGraphics2D to manage style properties.

   e. Improved error handling in SVGGraphics2D

2. Bug fixes


beta2rc6 -> beta2rc7
--------------------

1 - SVG Viewer Improvements

   a. Added support for double buffering (controllable by an option).

2. General

   a. Added line-number in error messages when parsing invalid
      SVG document.
   b. Maintenance and Bug fixing.
   c. JSVGCanvas is now a JavaBean which can be easily configured
      in IDE tools to add SVG viewing support in an application.
   d. Support for rendering hints such as text-rendering and
      shape-rendering.


beta2rc5 -> beta2rc6
--------------------

1 - new implementation of the swing component and viewer.

  a. it is now possible to interrupt while loading, building or painting
  b. rotations are now applied on the image in real time. document is
     repainted when the mouse button is released.
  c. real time zoom on the image with SHIFT+BUTTON 2 Drag
  d. progressive rendering has been improved
  e. toggling debug traces on/off to see performance is now possible

2 - new implementation of the bridge package

  a. code cleanup
  b. percentages are now handled correctly (both for xml attributes and CSS
     properties - samples/tests/percentagesAndUnits.svg)
  c. error handling has been improved
     (line number will be available soon)
  d. the building phase is now 30% faster
  e. bug fix with <pattern> (samples/tests/pattern*.svg)
  f. <marker> is now conformed to the current SVG spec (as of March 15)
  g. percentages are now handled correctly on the outermost SVG element (need
     to do the same for the ImageTranscoder)


3 - Transcoders. There are two new transcoders:

  a. WMF -> SVG Transcoder. This is a contribution to the Batik project from
     Luan O'Caroll (Luan.O'Carroll@boimail.com). You can run the transcoder on
     a set of Windows MetaFile (WMF) using the
     org.apache.batik.transcoder.wmf.tosvg.WMFTranscoder application.

  b. Printing Transcoder. This implementation of the Transcoder interface will
     print a set of SVG document to the default printer (see
     org.apache.batik.transcoder.print.PrintTranscoder).

4 - Misc.

  a. support for System colors (see: samples/tests/systemColors.svg)

  b. Creating custom Graphics2D implementation is now easier. A generic part of
     the SVGGraphics2D has been moved into a new package:
     org.apache.batik.ext.awt.g2d.
     This new package facilitates the creation of transcoders that will convert
     SVG documents to an arbitrary format by providing a Graphics2D implementation
     for that format that Batik can use to draw an SVG document (Batik can use
     a Graphics2D to paint an SVG document).

NOTE: Known regressions.

  a. next, previous and thumbnail have been momentarily removed from the viewer.
  b. error messages are printed in the console and not in a dialog.
  c. the partial internal linking support has been removed until
     a full implementation of linking can be done.
  d. printing has not been reintegrated into the new viewer.
  e. regressions may appear for scripting as it has been added in a hurry for
     this release. A clean pass will be done soon.
  f. text regression on tspan handling where dx/dy are temporarily not working.


beta2rc4 -> beta2rc5
---------------------

a. Text improvements.
b. Improved rendering (now uses tiling for faster panning).
c. Bug fixing.


beta2rc3 -> beta2rc4
--------------------

a. Handling of overflow property on <svg>
b. Filter and pattern optimizations
c. Color profile support
d. GVT optimizations


beta2rc2 -> beta2rc3
--------------------

a. Handling of the visibility property
b. Handling of references on gradients, patterns and filters
c. Baseline shift on text
d. Full support for markers.
e. Optimizations in filters and GVT.
f. Bug fixing (e.g., stroke's dash array)


beta2rc1 -> beta2rc2
--------------------

a. A lot of new text support (text length, letter and word spacing).
b. Some support for markers (not complete yet, but should be complete
   shortly, probably by next week).
c. Some support for views (in linking).
d. Cleaned up bridge code.
e. Improvements in the filtering code (there a some minor regressions
   which will soon be taken care of).


beta1 -> beta2rc1
-----------------

a Improved text support
b. Full filter implementation.
c. New Transcoder API.
d. Simplified package organization