summaryrefslogtreecommitdiff
path: root/TAO/NEWS
blob: 54279762e9dbc402ca285fb4eeac77409bdca1c7 (plain)
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
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
USER VISIBLE CHANGES BETWEEN TAO-2.5.6 and TAO-2.5.7
====================================================

. Fixed deprecated-copy warnings in TAO_IDL generated code

USER VISIBLE CHANGES BETWEEN TAO-2.5.5 and TAO-2.5.6
====================================================

. Fixed race condition in ImplRepo on server shutdown/restart (#889)

USER VISIBLE CHANGES BETWEEN TAO-2.5.4 and TAO-2.5.5
====================================================

. Fixed Memory Leaks in TAO_IDL caused by the addition of Annotations (#811)

. Changes in the Annotations API in TAO_IDL, see
  TAO/TAO_IDL/docs/annotations.md section titled "TAO 2.5.5" for details.

USER VISIBLE CHANGES BETWEEN TAO-2.5.3 and TAO-2.5.4
====================================================

. Enhanced the ImR to better handle a huge number
  of servers which use the ImR heavily and each of
  them does a frequent shutdown/start cycle

. The TAO_IDL frontend library now parses all IDL4
  annotation-related syntax: using and defining annotations.
  Use the tao_idl command-line options --idl-version and
  --unknown-annotations to control annotation parsing.
  Documentation on this feature is located in
  TAO/TAO_IDL/docs/annotations.md.

. TAO_IDL now will return an error status code when
  passing an invalid command line argument.
  Backends will have to support this behavior
  explicitly, see TAO/TAO_IDL/include/idl_defines.h
  for details.
  TAO_IDL also accepts new options such as -h,
  --help, --version, and --syntax-only, the latter
  of which won't generate any files, just check
  syntax of the IDL file(s).
  See tao_idl -h for details.

. When using IDL_Files in MPC, generated files will
  now be placed in the current directory by default,
  instead of the directory of the IDL file.
  Use
    idlflags += -o <IDL_FILE_DIR>
    gendir = <IDL_FILE_DIR>
  to output generated files to where the IDL file
  is.

USER VISIBLE CHANGES BETWEEN TAO-2.5.2 and TAO-2.5.3
====================================================

. Enhance ssliop and uiop corbaloc parsers

USER VISIBLE CHANGES BETWEEN TAO-2.5.1 and TAO-2.5.2
====================================================

. Enhance logging within the ImR

. Enhance the behavior of the ImR with a per-client
  activation mode and multiple clients starting in
  parallel

. Modified the SSLIOP::Protocol_Factory::init to
  process an "-SSLEcName" argument to set the ECDH
  curve name.

USER VISIBLE CHANGES BETWEEN TAO-2.5.0 and TAO-2.5.1
====================================================

. Make use of std::atomic when C++11 or newer is enabled
  for the CORBA reference counting

USER VISIBLE CHANGES BETWEEN TAO-2.4.8 and TAO-2.5.0
====================================================

. The TAO core libraries now use std::unique_ptr instead
  of std::auto_ptr when C++11 or newer is enabled

USER VISIBLE CHANGES BETWEEN TAO-2.4.7 and TAO-2.4.8
====================================================

. Logging enhancements to the TAO core for some possible
  error situations

USER VISIBLE CHANGES BETWEEN TAO-2.4.6 and TAO-2.4.7
====================================================

. TAO_IDL parses and discards IDLv4 annotations (applying, not defining)

. Fixed Bug 1220 as it applies to the SHMIOP transport.

USER VISIBLE CHANGES BETWEEN TAO-2.4.5 and TAO-2.4.6
====================================================

. Added support for IPv4-mapped IPv6 addresses in BiDirGIOP+SSLIOP.

. Fixed Bug 1220 as it applies to the SSLIOP transport.

USER VISIBLE CHANGES BETWEEN TAO-2.4.4 and TAO-2.4.5
====================================================

. Extended TAO_IDL with a new -Gsd which enabled the generation of two
  additional static operations for each interface. _desc_repository_id to
  retrieve the repository id as string, second _desc_interface_name to
  return the interface name. Both can be useful in template meta programming
  use cases where we want to use the repository id or interface name
  of a specific type.

USER VISIBLE CHANGES BETWEEN TAO-2.4.3 and TAO-2.4.4
====================================================

. Minor cleanup and fixes to the code generated by TAO_IDL

USER VISIBLE CHANGES BETWEEN TAO-2.4.2 and TAO-2.4.3
====================================================

. Added enhanced hot-standby feature to FT_Naming_Service. Use
  tao_ft_naming -h to get a list of new configuration options.
  This feature addresses performance problems on heavily loaded systems.

USER VISIBLE CHANGES BETWEEN TAO-2.4.1 and TAO-2.4.2
====================================================

. Fixed some problems with versioned namespaces in the
  tao_idl generated code

. Removed the non-const Any extraction operators which
  are deprecated within the IDL to C++ specification
  for a long time. Reduces footprint and simplifies the
  code. Make sure you are using 'const Foo*' as extraction
  type for Foo instead of 'Foo*'.

USER VISIBLE CHANGES BETWEEN TAO-2.4.0 and TAO-2.4.1
====================================================

. Reduced amount of warnings given by newer gcc/clang
  versions on the generated tao_idl code

USER VISIBLE CHANGES BETWEEN TAO-2.3.4 and TAO-2.4.0
====================================================

. None

USER VISIBLE CHANGES BETWEEN TAO-2.3.3 and TAO-2.3.4
====================================================

. ImR enhancement - Added a "force remove" option to the Implementation repository
  that will remove a server entry from the ImR Locator repository and kill any
  running instance with a single command.

. ImR enhancement - Fix to allow very large ( > 4K ) command line.

. ImR enhancement - Enhance the coordination between the Locator and the Activator
  to tolerate running on heavily loaded systems, in particular when a server process
  is slow to shut down, and a new server is started before the shutdown is complete

. LogWalker utility improvements for handling truncated GIOP buffer dumps, added
  tracking thread first/last contact times.

. Fault-Tolerance improvement - Optimize performance on NFS mounted filesystems. First
  a deadlock is resolved. Second, use of writer locks is minimized to only when writing
  is necessary. Third, NFS occasionally causes transient EBADF errors on access, so
  file access that results in a bad file error is retried before the error is reported
  to the application.

USER VISIBLE CHANGES BETWEEN TAO-2.3.2 and TAO-2.3.3
====================================================

. Extended SL2 Security Manager to easily allow non-secure collocated
  invocations but still disallow non-secure remote invocations

. Relaxed upper limit on POA Thread pool size.

. Fixed PICurrent improper reset issue. Now slot data is retained through an
  ImR forced retry.

. Bugzilla #4205 fixed.

. Defaulted IIOP endpoints on IPv6 enabled systems will no longer append localhost
  to the IOR if there are no routable IPv6 addresses but there are routable IPv4
  addresses available.

. Improved the performance of the FT-ImR while under very heavy loads.

. ImR now may be built on "uses_wchar" platforms.

. The temporary directory used by the tao_idl preprocessor may now
  contain spaces.

USER VISIBLE CHANGES BETWEEN TAO-2.3.1 and TAO-2.3.2
====================================================

. New SSLIOP Factory option -SSLPassword <password descriptor> facilitates
  distributing password protected private keys.

. New SSLIOP Factory option -SSLVersionList <list> constrains the list of
  cypher versions allowed.

. New SSLIOP Factory option -SSLCheckHost enables a second layer of
  authentication by comparing the sending hostname to the name or names in
  the supplied certificate

USER VISIBLE CHANGES BETWEEN TAO-2.3.0 and TAO-2.3.1
====================================================

. TAO is now hosted on github (https://github.com/DOCGroup/ATCD).
  As part of the release process we now generate a ChangeLog
  for each release which is stored in the ChangeLogs directory

. Fixed incorrect server status shown by tao_imr after a
  crashed server has been given a shutdown command

USER VISIBLE CHANGES BETWEEN TAO-2.2.8 and TAO-2.3.0
====================================================

. New feature added to constrain client ORBs using IIOP to only use local TCP
  ports spanning a supplied range. Use new ORB_init parameters
  -ORBIIOPClientPortBase <base> and -ORBIIOPClientPortSpan <count> to specify
  a range from base to base + count. A base supplied without a span indicates
  the client may use only a single port. A span supplied without a base is
  silently ignored.

. Fixed the manual activation mode of the Implementation Repository

. Reintroduced the restart attempt limiting of the Implementation Repository

. Fix a connection leak that occurred when the server side cache purged a
  Thread-Per-Connection managed entry.

USER VISIBLE CHANGES BETWEEN TAO-2.2.7 and TAO-2.2.8
====================================================

. Address a problem with Failover between primary and backup ImplRepo locators.
  Access state information is now shared during a server restart allowing a client
  to request a new server from either the ImR instance.

USER VISIBLE CHANGES BETWEEN TAO-2.2.6 and TAO-2.2.7
====================================================

. Improved the performance of the load balancing feature of the tao_ft_naming
  service. Now a global load balancing strategy may be set via the command line
  using the new -l ["random"|"round_robin"] argument. The newly implemented
  random strategy is lockless.

. Fixed active server detection when switching from the primary ImR locator to
  the backup.

. Added a new command for the windows NT Naming service CLI to set the service's
  start up argv list without invoking regedit.

. Added a new command for the windows NT Notify service CLI to set the service's
  start up argv list without invoking regedit.

USER VISIBLE CHANGES BETWEEN TAO-2.2.5 and TAO-2.2.6
====================================================

. Fix bug with mt_noupcall that allowed upcalls while waiting for a new connection

. Improved the performance of dynamic thread pool when activating new threads

. Improved the performance of the SYNC_WITH_SERVER oneway synchronization when
  used in conjunction with the CSD framework and POA thread pools

. Fix support for long double types when used with dynamic Anys

. Improve functionality and stability of running tests on
  Android Virtual Device (AVD).

USER VISIBLE CHANGES BETWEEN TAO-2.2.4 and TAO-2.2.5
====================================================

. Implementation Repository new features added.
  - New tao_imr kill command to signal an otherwise unresponsive server.
  - New tao_imr link command to identify groups of POAs that share a server.
  - ImR is better able to avoid errantly starting multiple server instances.

. Added support for Embarcadero C++Builder XE5 using
  bcc32 in debug and release mode

. Added support for Embarcadero C++Builder XE6 using
  bcc32 in debug and release mode

USER VISIBLE CHANGES BETWEEN TAO-2.2.3 and TAO-2.2.4
====================================================

. Added a new Client Strategy Factory option, -ORBDefaultSyncScope which
  takes the label "None", "Transport", "Server", or "Target" to define the
  sync scope to be used when a Messaging SyncScopePolicy is not in use.

. Improved recursive typecode handling

. Ended maintenance for Solaris 10 with Sun Studio

USER VISIBLE CHANGES BETWEEN TAO-2.2.2 and TAO-2.2.3
====================================================

. Fix for extra CDR padding bytes following a request header when there are no
  IN or INOUT arguments in the request. This happened when a request had at least
  one OUT argument, and also had a service context that ended off a CDR alignment
  boundary. While this is not a problem for TAO-TAO messaging, some non-TAO
  servers will reject such requests with a MARSHAL exception. See bug 4141 for more
  information.

USER VISIBLE CHANGES BETWEEN TAO-2.2.1 and TAO-2.2.2
====================================================

. None

USER VISIBLE CHANGES BETWEEN TAO-2.2.0 and TAO-2.2.1
====================================================

. Implementation Repository is better able to handle high request volume
  particularly when registered servers are going up and down.

. Fixed several memory leaks in the Trading Service

. Added support for Embarcadero C++BuilderXE4 using
  bcc32 in release mode

USER VISIBLE CHANGES BETWEEN TAO-2.1.9 and TAO-2.2.0
====================================================

. Feature enhancement for the Implementation Repository, the command to
  list currently active servers, confirmed with a ping, is now asynchronous
  along with the rest of the implementation.

. Added the new -ORBListenerInterface UIPMC option to provide detailed control
  over which IP interfaces are to be listened on for which mutlicast addresses.
  This works in a similar way to the existing -ORBPreferredInterfaces
  ORB_init command line option but for UDP server listeners instead of client
  senders. See the TAO_UIPMC_Protocol_Factory section in the
  docs/release/TAO/Options.html document for details. This option allows
  UIPMC/MIOP to control which interfaces are used by the server to listen
  for broadcast messages instead of only using the "default" interface.

  If TAO is built with the #define TAO_ALLOW_UNICAST_MIOP in effect, the
  normal error checking on joins is short circuited, such that MIOP can
  be used to send to a unicast address instead of a broadcast group. In general
  I would not recommend building TAO with this option set, end users should
  concider using the DIOP protocol instead.

. Fix for long standing Valuetype non-conformance (Bugzilla_1391):

  tao_idl generated ValueType OBV_* classes now also provide a
  _copy_value() method where this class is supposed to be the final
  "most derived" class. It is still left to the end user to provide
  such a method in their own most derived class when this is not
  the case (as only the final implimentation of the Valuetype will
  know how this duplication is performed).

  TAO can be built specifically to treat _copy_value() as a pure virtual
  function (as per the standard, and now the default behaviour) or,
  if #define TAO_VALUETYPE_COPY_VALUE_IS_NOT_PURE is defined during the
  building of TAO, a non-pure virtual function (in which TAO does not
  require an implimentation to provide the _copy_value() function as per
  the previous TAO implimentations).

  TAO doesn't normally use the _copy_value() fuction itself, but if
  #define TAO_VALUETYPE_COPYING_ANY_INSERTION_USES_COPY_VALUE
  is in effect during the build, valuetypes "copy" inserted into an any
  will call _copy_value() instead of increasing the reference count of the
  actual valuetype being "copied". In such cases obviosuly the _copy_value()
  method is required to be implemented. There are problems taking this
  general approach however, as the automatically generated _copy_value() is
  not capable of duplicating cyclic graphs held in valuetypes, which
  realistially require the reference counting insertions to be utalised
  and/or knowledge of the actual use of the valuetype itself. This setting
  is not recommended.

USER VISIBLE CHANGES BETWEEN TAO-2.1.8 and TAO-2.1.9
====================================================

. High performance implementation Repository [#4104] - The Implementation
  Repository Locator has been reimplemented using AMI/AMH to avoid the
  problem of nested upcalls under heavy load.

USER VISIBLE CHANGES BETWEEN TAO-2.1.7 and TAO-2.1.8
====================================================

. Fault Tolerant Implementation Repository [#4091] - The Implementation
  Repository Locator now supports a dual-redundant fault tolerant
  configuration which provides replication and seamless failover between
  the primary and backup locator servers.

. Implementation Repository interoperable with JacORB servers [#4101] -
  The Implementation Repository can now be used to manage JacORB
  3.3 or later application servers.

. Fault Tolerant Naming Service [#4092 & #4095] - A new Fault Tolerant
  Naming Service (tao_ft_naming), provides dual-redundant fault tolerant
  servers which utilize replication and seamless failover between the
  primary and backup server. The Fault Tolerant Naming Service can be
  used to provide load balancing capabilities (only the round-robin load
  balancing strategy is currently supported) through the use object groups.
  This feature is supported by a separate utility for managing the object
  groups (tao_nsgroup) as well as a programatic interface via IDL.

. Configurable Persistence Mechanism [#4092] - Extracted persistence
  mechanism used for storable naming context into Storable_* classes so
  that it can be reused. Simplified use of storable read/write so that
  it behaves more like C++ streams to read/write binary and CDR data.
  Added support for creating a backup mechanism to accomodate
  potentially corrupted files.  Providing configurable hooks so
  applications can decide if files are obsolete and need to be written
  to the persistence store.

. ORB Dynamic Thread Pool [#4093] - Added a new ORB thread pool strategy
  to dynamically adjust the number of threads which the ORB uses to
  service received calls based on several configuration parameters.
  These parameters include initial threads, minimum pool threads,
  maximum pool threads, request queue depth, thread stack size, and
  thread idle time.

. POA Dynamic Thread Pool [#4094] - A new Dynamic Thread Pool and
  Queuing strategy was created for POA usage. It leverages the
  existing Custom Servant Dispatching framework for invocation and
  activation. The strategy also dynamically adjusts the number of
  threads using configuration parameters similar to the ORB Dynamic
  Thread Pool. The Dynamic Thread Pool POA Strategy supports
  applications in associating a single thread pool with either
  1) a single POA in a dedicated configuration, or 2) multiple
  POAs in a shared configuration.  The strategy controls a request
  queue used to accept calls directed to an associated servant and
  a pool of threads that wait to service calls coming in on a
  particular queue.

. Multiple Invocation Retry [#4096] - Extended TAO to support multiple
  retry in the presence of COMM_FAILURE, TRANSIENT, OBJECT_NOT_EXIST,
  and INV_OBJREF exceptions. In addition, retries can occur if it has
  been detected that a connection has closed while waiting for a reply
  (currently not available under FreeBSD, OpenVMS, AIX, and Solaris). This
  feature can be used to support fault tolerant services (specifically
  the Fault Tolerant Naming and Implementation Repository services
  described earlier).  The invocation retry support allows
  configuration on how many times to try to connect to each server and
  the delay between tries.

. Added MIOP configuration options -ORBSendThrottling and -ORBEagerDequeueing,
  along with #define overrides for their default settings. See the descriptions
  in the MIOP section of doc/Options.html for their use.

USER VISIBLE CHANGES BETWEEN TAO-2.1.6 and TAO-2.1.7
====================================================

. Integrated several patches to simplify Debian/Ubuntu
  packaging

. Fixed IDL compiler bug related to internal reinitialization
  when processing multiple IDL files in a single execution.

USER VISIBLE CHANGES BETWEEN TAO-2.1.5 and TAO-2.1.6
====================================================

. We only try to load the ObjRefTemplate library at POA
  creation instead of trying to load it at each servant
  activation

USER VISIBLE CHANGES BETWEEN TAO-2.1.4 and TAO-2.1.5
====================================================

. None

USER VISIBLE CHANGES BETWEEN TAO-2.1.3 and TAO-2.1.4
====================================================

. CORBA::string_dup() and CORBA::string_free() have been enhanced to use
  non-allocated and shared static null strings. This allows for optimized
  default null string initialization in CORBA string members and a
  reduction in redundant dynamic memory management required for such.
  This enhancement can be removed via the config.h by including
    #define TAO_NO_SHARED_NULL_CORBA_STRING

  NOTE that it is a (CORBA spec) requirement that all CORBA::strings are
  deleted via the CORBA::string_free() and allocated via the
  CORBA::string_dup() or CORBA::string_alloc() calls; you must not use
  the c++ keywords new and delete[] directly. Previously it was possiable
  to ignore this requirement, however if you do so now, this enhancement
  for null strings will catch you out, as deleting these null
  CORBA::strings will cause corrupt heap and/or segfaults.

. Add support for -ORBPreferredInterfaces option to UIPMC. The form follows
  the same pattern as IIOP for IPv4 i.e. a local interface IP address should
  be specified as the mapping. e.g. -ORBPreferredInterfaces 225.*=192.168.0.2.
  For IPv6 the preferred interface should (neccessarily) be set as an interface
  name (e.g. 'eth0' for linux, or 'Loopback Pseudo-Interface' on windows) or an
  interface index number on windows. e.g. -ORBPreferredInterfaces FF01:*=eth0.
  Also add support an -ORBListenOnAll 0|1 UIPMCFactory option that can
  be specified in the svc.conf to make the acceptor listen on all multicast
  enabled interfaces on platforms that this is not the default. This has been
  observed to be required for the UIPMCAcceptor to open on the most recent
  Linux distribs.

  NOTE that there is an obvious elephant in the room in testing this option,
  we can't rely on any build/test machine having more than one (or any?)
  interfaces so the test (TAO/orbsvcs/tests/Miop/McastPreferredInterfaces),
  such as it is, is relying on side effects which may not hold for all platforms.
  Additionally the IPv6 behaviour isn't even consistent across platforms and
  the build machines can't be relied upon to have a 'proper' (non-zero conf
  link local) IPv6 configuration. Basically, if you want some confidence this is
  actually working I'd advise testing this option before you use it, running it
  on a machine with multiple interfaces with the debug level turned up.

. Enhanced the MIOP implementation; this protocol now supports MIOP message
  fragmentation which is controlled via the new MIOP_Strategy_Factory.
  For details see the MIOP_Strategy_Factory section in the docs/Options.html
  document included with this distribution.

USER VISIBLE CHANGES BETWEEN TAO-2.1.2 and TAO-2.1.3
====================================================

. Added OpenSSL configuration options SSLCipherList and
  SSLServerCipherOrder to SSLIOP_Factory.  Allows SSL/TLS BEAST
  exploit to be mitigated.

USER VISIBLE CHANGES BETWEEN TAO-2.1.1 and TAO-2.1.2
====================================================

. Changed behavior of Receive-Wait client wait strategy with
  ORBConnectionHandlerCleanup after oneway calls to register with
  the reactor after the call to clean up after connection closure.

. Added an extension of the CosNotifyFilter::FilterFactory to
  allow removal of filters created by the factory.  The extension
  also has accessors for existing filters and ids.

USER VISIBLE CHANGES BETWEEN TAO-2.1.0 and TAO-2.1.1
====================================================

. Correct ZIOP compression arbitration on the server reply
  path. The server now responds with one of the clients
  exposed compressors that the server also supports
  according to the ZIOP specification.

. Enhanced the plugable transports such that the
  send_message() api now provides an optional TAO_ServerRequest
  object pointer to provide access to any client side
  policies that are broadcast with each request. This enabled
  the ZIOP compression correction to be coded.

USER VISIBLE CHANGES BETWEEN TAO-2.0.8 and TAO-2.1.0
====================================================

. Added new rle compressor and enabled ZIOP by default

. Implimented DynValue, DynValueBox and DynValueCommon and their
  creation/use by TAO_DynAnyFactory::
    create_dyn_any (), create_dyn_any_from_type_code (),
    create_dyn_any_without_truncation (), create_multiple_dyn_anys ()
    and create_multiple_anys ().

. Correct the interaction of CORBA::ValueTypes and CORBA::Anys.
    The insertion into an Any of a ValueType base pointer
    used to set the Anys typecode to the fully derived valuetype.
    This allowed the any to be marshaled correctly sending the
    derived typecode and value over the wire. However it also
    stopped the user from extracting the valuetype from the any
    as the typecode for, or the actual pointer type being used for,
    the extraction couldn't match the any's internal two different
    types. The any's typecode is now simply set to match the base
    pointer which allows for the correct insertion/extraction from
    the any, whilst the marshalling code for anys containing
    valuetypes now sends the fully derived typecode of the fully
    derived data it is marshalling instead of the anys embedded
    (possiably base valuetype) typecode.

USER VISIBLE CHANGES BETWEEN TAO-2.0.7 and TAO-2.0.8
====================================================

. Added support for MPC's new feature that creates dependency files for IDL
  files when generating '-type gnuace' projects. Turned off by default, it
  can be enabled in a features file or on the command line with
  '-features ace_idl_dependencies=1'.

. Fixed IDL compiler bug where a generated component servant method that
  is called by the middleware to initialize a component's attributes
  was not including attributes of supported interfaces.

USER VISIBLE CHANGES BETWEEN TAO-2.0.6 and TAO-2.0.7
====================================================

. Added Time_Policy_Manager, a TIME_POLICY strategy manager configurable
  through the service configurator framework.
  This allows the dynamic configuration of the TIME_POLICY strategy used for
  ORB timers and countdowns. TAO includes two default TIME_POLICY strategies as
  statically linked service objects; TAO_System_Time_Policy_Strategy and
  TAO_HR_Time_Policy_Strategy (the first being used as default strategy).
  The docs/Options.html file describes the configuration options in detail.
  Two new tests have been added exemplifying these new options; tests/Time_Policy
  and tests/Time_Policy_Custom.
  Furthermore two new compile time option macros have been added related to
  TIME_POLICY strategies:
  - TAO_USE_HR_TIME_POLICY_STRATEGY if defined will force the use of the new
    TAO_HR_Time_Policy_Strategy as default time strategy instead of
    TAO_System_Time_Policy_Strategy;
  - TAO_HAS_TIME_POLICY if explicitly defined as 0 ('#define TAO_HAS_TIME_POLICY 0')
    will build TAO without the new TIME_POLICY strategy support.

USER VISIBLE CHANGES BETWEEN TAO-2.0.5 and TAO-2.0.6
====================================================

. Added new define TAO_DEFAULT_COLLOCATION_STRATEGY (default = thru_poa)
  which is used as -ORBCollocationStrategy isn't specified.

. Added new -ORBCollocationStrategy best. TAO tries to perform the best
  possible collocation, first direct if possible, then through_poa if possible
  else no collocation.

. Enhanced the RW -ORBWaitStrategy and the EXCLUSIVE -ORBTransportMuxStrategy
  to also work with AMI requests.

. mt_noupcall has been improved and generically speaking the handling of client
  leader threads in LF has been improved and fixed of potential deadlock
  situations

. The TAO skeletons got refactored to reduced footprint, a footprint saving
  for the skeletons between 10 and 60% has been achieved. For the full
  distribution including CIAO, DAnCE, OpenDDS, and DDS4CCM using RTI DDS this
  resulted in a reduction of 650,000 lines of code. Also the S.inl files are
  not generated anymore

USER VISIBLE CHANGES BETWEEN TAO-2.0.4 and TAO-2.0.5
====================================================

. Updated several TAO tests for automatic testing on Android

USER VISIBLE CHANGES BETWEEN TAO-2.0.3 and TAO-2.0.4
====================================================

. Added new IFR_Client_skel library that is now used by the IFR_Service

. Moved TAO_IDL generation of argument traits from the stub and
  skeleton .cpp files to the corresponding .h files.

USER VISIBLE CHANGES BETWEEN TAO-2.0.2 and TAO-2.0.3
====================================================

. Improved support for mt_noupcall but this is still not optimal due to a 2ms
  wait delay

. Addressed several Coverity reported issues

USER VISIBLE CHANGES BETWEEN TAO-2.0.1 and TAO-2.0.2
====================================================

. Remove support for already deprecated -ORBConnectionCachingStrategy

. Removed -ORBObjectKeyTableLock and -ORBPOALock, very risk options and this
  way the regular invocation path can be optimized much more

. Improved support for mt_noupcall wait strategy. Upcall detection has been
  improved and the transport is polled each 2ms to see if we can do the
  upcall.

. Improved performance of the Parallel Connect Strategy in TAO.

. tao_catior does a better job with JacORB generated IORs.

. tao_cosnaming can now be multithreaded.

USER VISIBLE CHANGES BETWEEN TAO-2.0.0 and TAO-2.0.1
====================================================

. Fixed IDL compiler bug that caused illegal references to items
  in the scope of a template module to be overlooked.

USER VISIBLE CHANGES BETWEEN TAO-1.8.3 and TAO-2.0.0
====================================================

. Improved support for abstract

USER VISIBLE CHANGES BETWEEN TAO-1.8.2 and TAO-1.8.3
====================================================

. TAO IDL compiler now generates attribute members for generated CCM
  executor implementation classes, as well as full implementations for
  the associated set/get operations.

. Add TAO IDL compiler command line option -iC, which overrides the
  default include path (current directory or $TAO_ROOT/tao) for
  *C.h files included in generated *A.h files.

. Removed autoconf support for TAO, it is really not tested, unstable, and
  unmaintainable at this moment

. The TAO IDL compiler now gives the following error when anonymous
  types are used: 'anonymous types are deprecated by OMG spec'.
  One can changes this error into a warning. There's also a possibility
  to silence the TAO IDL compiler about this message. One of the following
  defines can be added to your config.h file in order to change the behavior
  of the TAO IDL compiler:
  * IDL_ANON_ERROR:   The TAO IDL generates an error when it encounters
                      an anonymous type (default behavior).
  * IDL_ANON_WARNING: The TAO IDL generates a warning when it encounters
                      an anonymous type.
  * ANON_TYPE_SILENT: The TAO IDL doesn't generate a warning nor an error
                      when it encounters an anonymous type.

. Renamed ALL ORB services executables. This because of
  the fact that the TAO ORB services should be recognizable
  between the ORB services of other CORBA vendors. There are
  systems where ORB services of several CORBA vendors are
  installed (mainly via the installed packages). The following
  rename actions have been taken place:
  * 'LifeCycle_Service'       to 'tao_coslifecycle'
  * 'Dump_Schedule'           to 'tao_dump_schedule'
  * 'NT_Notify_Service'       to 'tao_nt_cosnotification'
  * 'Notify_Service'          to 'tao_cosnotification'
  * 'FT_ReplicationManager'   to 'tao_ft_replicationmanager'
  * 'IFR_Service'             to 'tao_ifr_service'
  * 'TAO_Service'             to 'tao_service'
  * 'Fault_Detector'          to 'tao_fault_detector'
  * 'Scheduling_Service'      to 'tao_cosscheduling'
  * 'Basic_Logging_Service'   to 'tao_tls_basic'
  * 'Notify_Logging_Service'  to 'tao_tls_notify'
  * 'Event_Logging_Service'   to 'tao_tls_event'
  * 'RTEvent_Logging_Service' to 'tao_tls_rtevent'
  * 'Naming_Service'          to 'tao_cosnaming'
  * 'NT_Naming_Service'       to 'tao_nt_cosnaming'
  * 'CosEvent_Service'        to 'tao_cosevent'
  * 'Event_Service'           to 'tao_rtevent'
  * 'LoadManager'             to 'tao_loadmanager'
  * 'LoadMonitor'             to 'tao_loadmonitor'
  * 'Trading_Service'         to 'tao_costrading'
  * 'Time_Service_Server'     to 'tao_costime_server'
  * 'Time_Service_Clerk'      to 'tao_costime_clerk'
  * 'ImplRepo_Service'        to 'tao_imr_locator'
  * 'ImR_Activator'           to 'tao_imr_activator'
  * 'Fault_Notifier'          to 'tao_fault_notifier'
  * 'Concurrency_Service'     to 'tao_cosconcurrency'

. Fixed several bugs related to recursive typecodes

USER VISIBLE CHANGES BETWEEN TAO-1.8.1 and TAO-1.8.2
====================================================

. Extended logging related to the POA active object map

USER VISIBLE CHANGES BETWEEN TAO-1.8.0 and TAO-1.8.1
====================================================

. IDL compiler

  - Added code generation for an empty implementation of
    the reply handler interface generated as part of an
    AMI4CCM connector, triggered by the same option, -Gex,
    that generates a similar implementation for a
    component executor.

  - Added flags that can be defined in config.h to output
    an error or warning if an anonymous IDL construct is
    seen by the IDL compiler. Also added IDL compiler
    options to do the same (or override a global flag)
    for individual IDL files.

USER VISIBLE CHANGES BETWEEN TAO-1.7.9 and TAO-1.8.0
====================================================

. Added minimal exploratory support for alternate IDL->C++
  mapping: IDL string->std::string and IDL sequence->std:vectors.
  We are talking with sponsors to see if we can raise funds
  to make a full new IDL to C++ mapping proposal that uses
  all new C++0x features

. Fixed bugzilla #3853.

. Improved the speed of tao_idl when processing
  large input files with many module re-openings.

. Removed MCPP support from TAO_IDL.

. Extended support for CIAO DDS4CCM and AMI4CCM in TAO_IDL

USER VISIBLE CHANGES BETWEEN TAO-1.7.8 and TAO-1.7.9
====================================================

. TAO's default makefiles (traditional ACE/GNU, not autoconf/automake)
  now support installation with "make install".
  Please see the ACE-INSTALL.html file for instructions.

. Refactored several parts of TAO_IDL

USER VISIBLE CHANGES BETWEEN TAO-1.7.7 and TAO-1.7.8
====================================================

. Added -ORBHandleLoggingStrategyEvents option. Given
  that ORB is run in user application this option allows
  to easily add log file rotation.

. Added a new option -ORBIgnoreDefaultSvcConfFile.
  This allows TAO to ignore only svc.conf file while
  processing normally other user provided configuration
  files or directives.

USER VISIBLE CHANGES BETWEEN TAO-1.7.6 and TAO-1.7.7
====================================================

. Add IDL3+ support to TAO_IDL

. Cleanup in TAO_IDL. Part of this cleanup closes
  (Bugzilla 2200).

USER VISIBLE CHANGES BETWEEN TAO-1.7.5 and TAO-1.7.6
====================================================

. Added support for iPhone/iPod Touch/iPad. The following
  environment variables are needed:

  IPHONE_TARGET, should be set to either SIMULATOR or
  HARDWARE. Set to HARDWARE if you want to deploy
  on the iPhone/iPod Touch/iPad device.

  IPHONE_VERSION, should be set to 3.1.2 or 3.2. One can
  set the version to any future or past versions, but
  only 3.1.2 and 3.2 have been tried.

  Note that one has to compile ACE/TAO statically as
  it is believed that the iPhone OS does not support
  dynamic loading of external libraries. The usual
  procedure of cross compiling ACE/TAO applies
  (such as setting HOST_ROOT environment variable).

. Added support for IDL template modules in the IDL
  compiler front end. This is partly tested, some
  parts do work, some not yet

. Fixed bug in optional ostream operator generation
  for IDL arrays.

. Added member validation feature to LoadBalancer.

. Add support for valuetype repository id and value
  on both input and output streams.

. Added support for Embarcadero C++ Builder 2010

. Added method TAO_Leader_Follower::set_new_leader_generator().

. Fixed missing request id in logging of LocateRequest/LocateReply &
  CancelRequest.

. Fixed problems with ORB shutdown in combination with active
  requests.

USER VISIBLE CHANGES BETWEEN TAO-1.7.4 and TAO-1.7.5
====================================================

. Converted a lot of TAO tests to use the new test framework

. Fix problem in the IDL compiler where set/get methods for
  attributes in a local interface derived from a non local interface
  where not regenerated as pure virtual

. Fixed some bugs concerning spaces within roots, to allow TAO_IDL
  to be used by user projects that are installed on windows paths
  such as "c:\Project Files\..." or "c:\Documents and Settings\.."
  etc.

. The IDL3+ keywords porttype/port/mirrorport are now fully
  implemented and tested

. Fixed bug in code generation for components, where a derived
  component or home with more than one generation of ancestors
  was missing inherited operations in its operation table

. Merged in changes from OCI's distribution which originate from
  OCI request ticket [RT 13596, RT 13704].

  - Added queue-overflow statistics to the Notification Service MC.
  - Modified Notification Service MC to work in static builds.
  - Corrected an error that caused Notification Service MC statistics
    to fail when -AllocateTaskPerProxy is used.
  - QueueDepth have been changed to measure the number of entries
    rather than attempting unsuccessfully to estimate the amount of
    memory used by the queue.
  - Added TAO_EXPLICIT_NEGOTIATE_CODESETS macro to improve the ease
    of including optional codeset support to Notify_Service in static
    builds.
  - Added new MPC features (notify_monitor_control and
    negotiate_codesets).
  - fixed ACE_Logging_Stragey service loading issue in static builds.

USER VISIBLE CHANGES BETWEEN TAO-1.7.3 and TAO-1.7.4
====================================================

. Initial support for IDL3+ in the TAO_IDL compiler front end.
  IDL3+ is an extension to IDL3 driven by the DDS4CCM draft
  standard. IDL3+ adds a porttype which is a logical grouping
  of CCM ports and a concept of templates (like C++)

. Changed behaviour of -Glem and -Glfa

. Ported a large set of TAO tests to the new test framework

. Added a capability to throw BAD_PARAM exception in case
  there is an attempt to access sequence elements above
  sequence length. By default this capability is turned on
  in debug builds with defining TAO_CHECKED_SEQUENCE_INDEXING.
  BAD_PARAM exception is also thrown in case a new sequence
  length for bounded sequence is greater than the bound
  defined in IDL.

USER VISIBLE CHANGES BETWEEN TAO-1.7.2 and TAO-1.7.3
====================================================

. Merged in changes from OCI's distribution which
  originate from OCI request ticket [RT 12994]. Added
  following ORB options.

    -ORBForwardOnceOnObjectNotExist [0|1]
    -ORBForwardOnceOnCommFailure [0|1]
    -ORBForwardOnceOnTransient [0|1]
    -ORBForwardOnceOnInvObjref [0|1]

  The -ORBForwardOnceOnObjectNotExist ORB option is added
  to avoid side effect from
  -ORBForwardInvocationOnObjectNotExist that could cause
  the request fall into forward loop in some use cases
  (e.g. client sends request while servant is deactivated).
  The other options are added for the same purpose to avoid
  possible forward loop upon specified exceptions.

. Corrected TAO_IDL dds code generation to count WChar size for wstring
  marshal size.

USER VISIBLE CHANGES BETWEEN TAO-1.7.1 and TAO-1.7.2
====================================================

. Extended IDL compiler to take over all code generation from
  the CIAO CIDL compiler, which has been eliminated.
  See $TAO_ROOT/docs/compiler.html for details.

. Added code generation for export header files. See
  $TAO_ROOT/docs/compiler.html for details.

USER VISIBLE CHANGES BETWEEN TAO-1.7.0 and TAO-1.7.1
====================================================

. Improved Unicode compatibility.

. Improved service configuration processing.

USER VISIBLE CHANGES BETWEEN TAO-1.6.9 and TAO-1.7.0
====================================================

. Merged in changes from OCI's distribution which originate from
  OCI request ticket [RT 12912]. In their totality, the changes
  added new features for IMR to support the capability of client
  automatically reconnects servers within same port range upon
  server restart. The ServerId is added to ServerInfo in IMR to
  help identify server process. The -UnregisterIfAddressReused
  option is added to IMR to enable the address reuse checking
  upon server registering. The servers that address is reused
  are unregistered from IMR. The -ORBForwardInvocationOnObjectNotExist
  option is added to forward request to next available profile
  upon receiving OBJECT_NOT_EXIST exception reply.

. The -ORBRunThreads of the notification service has been renamed
  to -RunThreads and the notification service can now be loaded
  as dll.

. Updated ZIOP to match the OMG Beta 2 specification

. Added a new utility, tao_logWalker, see utils/logWalker for details.
  This tool analises a collection of log files containing output of
  TAO running with -ORBDebuglevel 10, and generates a report showing
  process, thread and invocation summaries.

. Fixed bug in Notification Service that the filter constraint expressions
  are ignored when event type domain_name or type_name is specified
  (see bug 3688).

. The MCPP version optionally used by TAO_IDL has been updated to 2.7.2.
  Efforts have been taken to port this to as many platforms as possible,
  however, since it is not currently the default configuration it may
  not work across all platforms.

USER VISIBLE CHANGES BETWEEN TAO-1.6.8 and TAO-1.6.9
====================================================

. Reply Dispatchers are refactored. No deadlock occurs when an
  (a)synchronous CORBA call is made during dispatching a reply.

. Fixed IDL compiler bug that in some cases caused code generation for
  inherited operations to be skipped.

. The Transport Cache Size maximum is now a hard maximum.

. Fixed several bugs related to the purging of transports when the cache
  is almost full.

. New TAO-specific feature of Notification service improves management
  of proxies when peer goes away without disconnecting from proxy.  See
  orbsvcs/Notify_Service/README for details in the svc.conf section.

. Improved Notification topology persistence, now persists filters.

. Updated ZIOP to match the beta 1 OMG specification.

USER VISIBLE CHANGES BETWEEN TAO-1.6.7 and TAO-1.6.8
====================================================

. Fixed race condition when multiple threads make a connection to the
  same server (bugzilla 3543)

. Updated several tests to the new test framework

. Fixed several memory leaks and make sure the TAO singletons are
  destructed when the TAO DLL gets unloaded

. Improved WinCE unicode support and extended the number of tests that
  can be run with WinCE

. Fixed some race conditions in the transport cache. There are several
  known issues resolved in the transport cache when it starts purging.

. Fixed memory leak in string and object reference sequences.

. Bugs fixed: 3078, 3499, 3524, 3543, 3549, 3557, 3559.


USER VISIBLE CHANGES BETWEEN TAO-1.6.6 and TAO-1.6.7
====================================================

. Added a fix for bug 2415.  Added -DefaultConsumerAdminFilterOp and
  -DefaultSupplierAdminFilterOp TAO_CosNotify_Service options for setting
  the default filter operators.

. The full TAO distribution compiles with unicode enabled. Work is ongoing
  to make the TAO runtime results comparable with the ascii builds.

. Added two new ORB parameters, -ORBIPHopLimit and -ORBIPMulticastLoop. The
  first one controls number of hops an IPv4/IPv6 packet can outlive. The
  second one is related to MIOP only and it takes boolean value which
  directs whether to loop multicast packets to the originating host or not.

. Added the "TAO" and "TAO/orbsvcs" OCI Development Guide Examples under the
  directories /DevGuideExamples and /orbsvcs/DevGuideExamples.  NOTE this is
  an ongoing port of the original version x.5.x examples and some are not yet
  100% compatiable with the current version of TAO.

. Split CosLifeCycle library into separate client stub and server
  skeleton libraries.  Fixes bugzilla issue #2409.

. Split CosTime library into separate client stub, server skeleton,
  and server implementation libraries.  Fixes bugzilla issue #3433.

. Avoid core dumps when evaluating TCL and ETCL expressions containing
  divisions by zero.  Partial fix for bugzilla issue #3429.

USER VISIBLE CHANGES BETWEEN TAO-1.6.5 and TAO-1.6.6
====================================================

. Added a new text based monitor to the Notify_Service to keep track of
  consumers that were removed due to a timeout.

. Repaired the -ORBMuxedConnectionMax <limit> option on the resource factory.
  This service configurator option defines an upper limit to the number of
  connections an orb will open to the same endpoint.

. Repaired a problem that caused the ORB to open too many connections to
  an endpoint.

. Added a -Timeout option to the Notify_Service to allow the user to apply a
  relative round-trip timeout to the ORB.  This option requires that the
  'corba_messaging' MPC feature be enabled during building of the
  Notify_Service, which it is by default.

. Added ZIOP support to TAO. ZIOP adds the ability to compress the
  application data on the wire. This is a join effort of Remedy IT, Telefonica,
  and IONA. We are working on getting this standardized through the OMG.
  Until this has been formally standardized we don't guarantee
  interoperability with other ORBs and between different versions of
  TAO that support ZIOP, this is done after this has been accepted
  by the OMG. If you want to experiment with ZIOP you need to add
  TAO_HAS_ZIOP 1 as define to your config.h file. See TAO/tests/ZIOP
  for an example how to use it. All policies are not checked on all
  places so it can happen that the ORB sends uncompressed data when
  it could have compressed it. This is because of limitations in the
  policy mechanism in the ORB which will take a few weeks to rework.
  Also note that ZIOP doesn't work together with RTCORBA

. Added a -m option to the ImplRepo (ImR, Implementation Repository) Activator,
  which specifies the maximum number of environment variables which will be
  passed to the child process.  The default (and previous behavior) is 512.

USER VISIBLE CHANGES BETWEEN TAO-1.6.4 and TAO-1.6.5
====================================================

. Updated TAO to comply with the IDL to C++ mapping v1.2. As a result
  CORBA::LocalObject is now refcounted by default

. Added a new ORB parameter, -ORBAcceptErrorDelay, that controls the amount
  of time to wait before attempting to accept new connections when a
  possibly transient error occurs during accepting a new connection.

. Fixed a bug which could lead to an ACE_ASSERT at runtime when a TAO
  is used from a thread that is not spawned using ACE

. Added new Monitoring lib that can be used to retrieve values from
  the new Monitoring framework in ACE. This is disabled by default
  because it is not 100% finished yet, with the next release it
  will be enabled by default

. Extended the -ORBLaneListenEndpoints commandline option to support
  *, for details see docs/Options.html

. VxWorks 6.x kernel mode with shared library support

USER VISIBLE CHANGES BETWEEN TAO-1.6.3 and TAO-1.6.4
====================================================

. Service Context Handling has been made pluggable

. Improved CORBA/e support and as result the footprint decreased when
  CORBA/e has been enabled

. Added the ability to remove consumer and supplier proxies and consumer and
  supplier admins through the Notify Monitor and Control interface.

. Changed Interface Repository's IOR output file from being
  world writable to using ACE_DEFAULT_FILE_PERMS.

. Add support for a location forward with a nil object reference.

USER VISIBLE CHANGES BETWEEN TAO-1.6.2 and TAO-1.6.3
====================================================

. Fixed send side logic (both synchronous and asynchronous) to honor
  timeouts. An RTT enabled two-way invocation could earlier hang
  indefinately if tcp buffers were flooded.

. Bug fix for cases where the IDL compiler would abort but with an
  exit value of 0.

. Bug fix in IDL compiler's handling of typedef'd constants having
  a bitwise integer expression as the value.

. Bug fix that ensures valuetypes and their corresponding supported
  interfaces have parallel inheritance hierarchies.

. Fix for possible out-of-order destruction of Unknown_IDL_Type's
  static local lock object (bugzilla 3214).

. Added list() iterator functionality for the Naming Service when
  using the -u persistence option.

. Various bug fixes to the IFR service and compiler.

. New option (-T) to IFR compiler that permits duplicate typedefs with
  warning.  Although not encouraged, this allows IDL that used to pass
  through the IFR compiler to still pass through rather than having to
  be changed.

. Fix crashing of _validate_connection on an invalid object reference

. Add support for TAO on VxWorks 5.5.1

. _get_implementation has been removed from CORBA::Object, it was
  deprecated in CORBA 2.2

. Improved CORBA/e support

. Fixed SSLIOP memory leaks

USER VISIBLE CHANGES BETWEEN TAO-1.6.1 and TAO-1.6.2
====================================================

. Added support for handling Location Forward exceptions caught when using
  AMI with DSI. These exceptions may also be raised from within DSI servants
  using AMH.

. Added -RTORBDynamicThreadRunTime which controls the lifetime of dynamic
  RTCORBA threads

. Changed the PI code so that send_request is also called at the moment
  we don't have a transport (bugzilla 2133)

. Fixed memory leak that occured for each thread that was making CORBA
  invocations

. Updated several tests to work correctly on VxWorks

. Removed support for pluggable messaging. As a result the code in the
  core of TAO is much cleaner and we are about 5 to 10% faster

. Improved CORBA/e support

. Added gperf's exit code to the error message output if it exits
  unsuccessfully when spawned by the IDL compiler to generate an
  interface's operation table

. Fixed bug in Interface Repository's handling of base valuetypes
  and base components (Bugzilla 3155)

. Fixed code generation bug that occurs when there is both a C++
  keyword clash in the IDL and AMI 'implied IDL' code generation

. Fixed IDL compiler bug wherein some cases of illegal use of a
  forward declared struct or union wasn't caught

. Improved support for VxWorks 6.4 kernel and rtp mode

USER VISIBLE CHANGES BETWEEN TAO-1.6 and TAO-1.6.1
====================================================

. Made TAO more compliant to CORBA/e micro

. Fixed invalid code generation by the IDL compiler when the options -Sa -St
  and -GA are combined

USER VISIBLE CHANGES BETWEEN TAO-1.5.10 and TAO-1.6
=====================================================

. Added a new interface that allows monitoring of activities within the
  Notification Service.  Completely configurable through the Service
  Configurator, the monitoring capabilities are only in effect when chosen
  by the user.  When the monitoring capabilities are enabled, an outside
  user can connect to a service that allows querying statistics gathered by
  the Notification Service.

. Moved the BufferingConstraintPolicy to the Messaging lib

. Made it possible to disable not needed IOR parsers to reduce footprint

. Reworked several files to get a smaller footprint with CORBA/e and
  Minimum CORBA. This could lead to a reduction of more then 20% then
  with previous releases

. Removed the Domain library, it was not used at all and only
  contained generated files without implementation

USER VISIBLE CHANGES BETWEEN TAO-1.5.9 and TAO-1.5.10
=====================================================

. Added support for forward declared IDL structs and unions to the
  Interface Repository loader

. A new securty option is available using the Access_Decision interface
  defined by the CORBA Security Level 2 specification. This enables the
  implementation of servers using mixed security levels, allowing some
  objects to grant unrestricted access while others require secure
  connections. See orbsvcs/tests/Security/mixed_security_test for
  details on using this feature.

. Removed GIOP_Messaging_Lite support for all protocols

. Fixed a hanging issue in persistent Notify Service during disconnection.

. Added IPv6 support to DIOP

. Added -Gos option to the IDL compiler to generate ostream
  operators for IDL declarations

USER VISIBLE CHANGES BETWEEN TAO-1.5.8 and TAO-1.5.9
====================================================

. When using AMI collocated in case of exceptions they are deliverd
  to the reply handler instead of passed back to the caller

. Added support for IPv6 multicast addresses when federating RTEvent
  channels.

. Fixed a bug in the IDL compiler's handling of octet constants where
  the rhs consists of integer literals and infix operators (Bugzilla 2944).

. TAO_IDL enhancements for built in sequence support in TAO DDS.

. Provide support for TAO DDS zero-copy read native types.

. TAO_IDL fix for lock-up and incorrect error message generation for
  missing definitions within local modules. This fix also stops the
  erronious look-up in a parent scoped module (with the same name as
  a locally scoped module) that should have been hidden by the local
  scope definition.

. The TAO_IORManip library now has a filter class that allows users to
  create new object references based on existing multi-profile object
  references by filtering out profiles using user defined criteria.  The
  use of -ORBUseSharedProfile 0 is required for this to function.

. A problem in TAO_Profile::create_tagged_profile was fixed. This problem
  triggered only when MIOP in multi-threaded application was used.

. Added IPv6 support in MIOP so that IPv6 multicast addresses can be used in
  addition to those IPv4 class D addresses. DSCP support is implemented in
  MIOP as well. However, since MIOP only allows one way communication then it
  makes sense to use DSCP on the client side only.

USER VISIBLE CHANGES BETWEEN TAO-1.5.7 and TAO-1.5.8
====================================================

. Fixed bug in IDL compiler related to abstract interfaces

. Fixed several issues in the AMI support

. Added new -ORBAMICollocation 0 which disables AMI collocated calls

. Improved a lot of test scripts to work with a cross host test
  environment where client and server are run on different hosts.
  This is used for automated testing with VxWorks

. Fixed handled of a forward request when doing a locate
  request call

. Added an option, -a, to the Event_Service to use the thread-per-consumer
  dispatching strategy instead of the default dispatching strategy.

. Improved wide character compilation support.

. Fixed IDL compiler to run on both OpenVMS Alpha and OpenVMS IA64.

. Fixed memory leaks in the ImpleRepo_Service.

. Fixed a bug in the IDL compiler relating to include paths.

. Fixed Trader Service issues related to CORBA::Long and CORBA::ULong.

USER VISIBLE CHANGES BETWEEN TAO-1.5.6 and TAO-1.5.7
====================================================

. Removed ACE_THROW_RETURN.

. Fixed a memory crash problem when using ETCL IN operator with
  Notify Service filter.

. Remove exception specifications from ORB mediated operations (C++
  mapping requirement)

. New diffserv library to specify diffserv priorities
  independent of RTCORBA

. Addressed Coverity errors in core TAO libraries, TAO_IDL compiler,
  stubs and skeletons generated by TAO_IDL and the TAO Notification
  Service.

. Extended current DynamicInterface to allow DII+AMI+DSI+AMH.
  (Thanks to OMC <www.omesc.com> for the sponsorship.)

. Fixed bug in IDL compiler code generation for a comma-separated list of
  sequence typedefs.

. TAO no longer sets the unexpected exception handler.

USER VISIBLE CHANGES BETWEEN TAO-1.5.5 and TAO-1.5.6
====================================================

. Removed all exception environment macros except ACE_THROW_RETURN
  and ACE_THROW_SPEC

USER VISIBLE CHANGES BETWEEN TAO-1.5.4 and TAO-1.5.5
====================================================

. Added an IDL compiler option to generate an explicit instantiation
  and export of template base classes generated for IDL sequences,
  sometimes necessary as a workaround for a Visual Studio compiler bug
  (Bugzilla 2703).

. Beefed up error checking in the IDL compiler when processing
  #pragma version directives.

. Modified IDL compiler's handling of a syntax error to eliminate
  the chance of a crash (Bugzilla 2688).

. Fixed a bug in code generation for a valuetype when it inherits
  an anonymous sequence member from a valuetype in another IDL file.

. Extended tests in tests/IDL_Test to cover generated code for
  tie classes.

. Modified tao_idl to emit code to set the exception data in the
  Messaging::ExceptionHolder in the AMI _excep operation.  This has the
  effect of allowing user defined exceptions to be recognized when
  raising an exception without collocation.  This fixes Bug 2350.

. Added hooks to enable custom Object to IOR conversion or allowing local
  objects (such as Smart Proxies) to be converted to an IOR string.

. Removed warning issued when using corbaloc with a default object key.

. Added implementation of Dynamic Any methods insert_*_seq() and
  get_*_seq() (spec-defined for sequences of IDL basic types),
  as well as implementation of insert and get methods for abstract
  interfaces.

. Added support for CORBA/e compact

. Added support for CORBA/e micro

. Fixed issues relating to the CosTrading Server library.  The constraint
  language lexer now allow negative floating point values, 64-bit signed and
  unsigned integers (which can currently be represented as octal or decimal).
  Also, fixed a bug where negative integers were being stored and compared as
  unsigned integers which resulted in -3 > 0 evaluating to true.

. Added Compression module that delivers the infrastructure
  classes with which data can be compressed. This can be used
  by regular applications but then also by the ORB in the future.

. Removed support for -Ge 0 and -Ge 1 from the IDL compiler. In practice
  this means that the IDL compiler doesn't generate any environment macros
  anymore.

. Fixed a problem where TAO mistakenly considered ALL messages
  with zero-length payload to be errors and was thus not properly
  parsing and handling the GIOP CloseConnection message.  This is
  tested via Bug_2702_Regression.

. Added an optimization to servant activation to eliminate calls to
  check_bounds() on the object key sequence.  This has been observed
  to yield a 30% decrease in activation time for debug builds on VC71
  and linux gcc.

. Merged in changes from OCI's distribution which originate from
  OCI request tickets [RT 8449] and [RT 8881]. In their totality,
  these changes add a feature whereby the notification service
  implementation can utilize a separate ORB for dispatching events to
  consumers.

. Contributed the Transport::Current support - a TAO-specific
  feature providing IDL interfaces which enables users to obtain
  information about the Transports used to send or receive a
  message.  The basic intent is to provide (typically) a
  read-only interface to obtaining data like the number of bytes
  transferred or the number of messages sent and received.
  Since specific Transports may have very different
  characteristics, a simple generic implementation for
  Transport::Current is insufficient.  This implementation also
  provides support for specific Transport implementations. See
  the TC_IIOP implementation, which is an IIOP-specific
  Transport::Current. It extends the generic interface with
  operations providing information about IIOP endpoints, like
  host and port.  By default, TAO builds with support for this feature.
  Define "transport_current=0" in your default.features file to disable
  it. For more details of how the feature is intended
  to be used, see docs/transport_current/index.html

USER VISIBLE CHANGES BETWEEN TAO-1.5.3 and TAO-1.5.4
====================================================

. Added support for ACE_Dev_Poll_Reactor to Advanced_Resource_Factory.

. Improved tao_idl performance, particularly over networked
  filesystems.

. Added new option for the RTEC, -ECDispatchingThreadsFlags, that
  allows the user to pass in a list of thread creation flags and
  priority for dispatching threads.  These can be used for either the
  MT dispatching strategy or the TPC dispatching strategy.  See
  docs/ec_options.html for usage information.

  Also added -ECDebug option to enable debugging output from the RTEC.
  Only the option and variable was added, but no messages.  Therefore,
  at the moment, this does not generate much output.

. Resolved Bugzilla #2651 to eliminate incompatibility with the new
  mechanism, allowing per-ORB configurations.

. Fixed Bugzilla #2686, which involved correctly managing memory during
  exceptional situations.  Throwing an exception during the creation of the
  Root POA would cause a leak of a TAO_Adapter and POA manager related
  objects.

. Fixed Bugzilla #2699, by uninlining generated code for the
  TIE template classes. Inlining of virtual functions in this
  code was causing problems with RTTI on some compilers. As a side
  result, the idl compiler doesn't generate a S_T.inl file anymore.

. Fixed a bug where calling _set_policy_overrides() on a collocated servant
  would return an unusable object reference.

. Addressed a number of Coverity errors (CHECKED_RETURN, DEADCODE, LOCK,
  USE_AFTER_FREE, RESOURCE_LEAK, FORWARD_NULL).  In particular, missing
  return value checks and unreachable code in the ACE CDR stream
  implementation were addressed.  Memory and resource management in the ACE
  Configuration classes was corrected.  A potential deadlock upon error was
  fixed in ACE_OS::rw_unlock().  Missing return value checks were addressed
  in ACE_OS::open() on Windows and ACE_Thread_Manager::wait().  A potential
  dereference of a null pointer in ACE_OS::scandir_emulation() was
  corrected.  Lastly, the ACE_UUID::lock() accessor interface and
  implementation was cleaned up so that it would not return a lock whose
  memory had been freed.

USER VISIBLE CHANGES BETWEEN TAO-1.5.2 and TAO-1.5.3
====================================================

. Added new options, -CECConsumerOperationTimeout and
  -CECSupplierOperationTimeout, to the CosEvent service.  See Bugzilla #2594
  and $TAO_ROOT/docs/cec_options.html for details.  The purpose of these
  options is to use the relative round-trip timeout feature from the TAO
  Messaging library to detect clients that are "hung" in push() or pull()
  operations but would otherwise not be detetcted as "bad" by the
  -CECReactive*Control options (since they have a thread available in
  orb->run()).

. The Tk/Fl/Qt/Xt resource factories have been moved to subdirectories
  to make maintenance easier. If you are using these you have to update
  your include paths.

. Fixed a compatibility problem between TAO and ORBs using Valuetype ID
  indirection, such as JacORB. This problem was inadvertently introduced
  in 1.5.2.

. Oneway requests when using SYNC_NONE, SYNC_DELAYED_BUFFERING, or
  SYNC_EAGER_BUFFERING will be queued until the connection is completed.
  Connection completion occurs when one of the following occurs:
   a) A one-way request that does NOT use one of the sync-scopes mentioned
        above is sent via the same transport
   b) A two-way request is sent via the same transport
   c) orb->run() is called
  Applications that do not currently do one of the above will no longer
  establish a connection and therefore no data will be sent.

. Fixed a problem with location forward objects being raised by colocal
  ServerInterceptors. This problem did not occure interacting with remote
  servers.  Now the raised object-reference will take effect on the object
  reference being held by client.

. Fixed a problem with properly shutting down socket connections by
  explicitly calling release_os_resources from the destructor of protocol
  specific connection handlers. Maintainers of third-party (non-DOC)
  pluggable protocols must verify they are releasing any resources they
  acquired. The base Connection_Handler destructor can't do it for them.

. Added COIOP as pluggable protocol. This stands for Collocated Only IOP
  and it only allows collocated calls. Can be used for embedded systems that
  do use corba but don't make any remote calls.

. Notication service works with Microsoft Visual C++ 8.

. Fixed Bugzilla #2582, related to IDL compiler generation of arg traits
  template specialization for typedefs.

. Fixed Bugzilla #2583, a bug in the recursive check for local type
  containment that controls CDR operator generation in the IDL compiler.

. Addressed Bugzilla #2603, which called for a -oS option for the IDL
  compiler to set the output directory for skeleton files.

. Fixed Bugzilla #2634, which reported a bug in code generation for some
  escaped IDL identifiers.

. Eliminated the dependency of the TAO Interface Repository IDL3 test on
  CIAO libraries.

. Added output message to the IDL compiler, containing the name of the IDL
  file being processed.

. Fixed IDL compiler to recognize CORBA::AbstractBase as a pseudo object.

. Fixed a regression on Bugzilla #2074 caused by a reference
  counting problem on the Connection Handler.  This change
  affects all pluggable transport protocol implementations.
  Maintainers of third-party (non-DOC) pluggable protocols will
  need to make similar changes to their *_Connection_Handler
  implementations.

. Fixed parsing of explicitly wildcarded IIOP endpoints.
  These might be iiop://[::]:, iiop://[]: or iiop://0.0.0.0:
  The first two examples are useful only when IPv6 is supported.
  The last example forces only IPv4 endpoints even when IPv6 is
  supported. Use iiop://: to get both IPv4 and IPv6 endpoints.

. Fixed Bugzilla #2651 to properly handle order of destruction
  of Codeset Manager instances owned by the Default Resource
  Factory.  The ORB_Core is now responsible for managing the
  lifecycle of the Codeset Manager instance instead of the
  Resource Factory.  The Resource Factory now gives up ownership
  of the objects it creates.

. Fixed Bugzilla #2545 so collocated DII oneway requests do not
  crash in get_in_arg().

. Added a new "-b" option to the IDL compiler to control whether
  or not arguments on oneway invocations are "cloneable".  If the
  arguments are cloneable, and Custom Servant Dispatching (CSD)
  strategy is in use, the arguments for collocated oneways can be
  cloned during the copy of the TAO_Server_Request, which gives a
  performance improvement over the old method of copying the
  arguments using marshaling.

. Fixed Bugzilla #2604 so the Implementation Repository can
  properly keep track of servers it launched in PER_CLIENT
  activation mode.

. Fixed build warnings from some 64-bit compilers in code in which
  unsigned long and ACE_CDR::ULong were mixed.

. Added various performance enhancements.  Many thread mutex/integer
  reference counts were replaced with ACE_Atomic_Op<unsigned long>.  Some
  buffers are allocated on the stack instead of the heap where possible.

USER VISIBLE CHANGES BETWEEN TAO-1.5.1 and TAO-1.5.2
====================================================

. To be able to support CORBA/e the pidl files within the core libs are
  now compiled during the building of the core libs. This means that gperf
  and TAO_IDL must be build before you can build the core libs!

. Changed NT_Naming_Service project to require new MPC feature variable
  "winnt".  Avoids building and installing this on non-Windows systems.
  Fixes bugzilla bug #2412.

. Changed NT_Notify_Service project to require new MPC feature variable
  "winnt".  Avoids building and installing this on non-Windows systems.
  Fixes bugzilla bug #2411.

. Changed Telecom Log Service plug-in Strategy Interface.

  Added get_record_attribute(), set_record_attribute(), and
  set_records_attribute(); removed remove(), retrieve(), and update().
  This will allow plug-in Strategies to handle these high-level
  operations more efficiently.

  Added get_gauge() and reset_gauge(), to maintain "gauge" used for
  capacity threshold alarms when log channel's LogFullActionType is
  DsLogAdmin::wrap.  This resolves bugzilla 2420.

. Allow different ORB instances to use a different sets of Service
  Objects in their own Service Repository instances. This resolves
  bugzilla #2486.

. Integrate new sequence implementation made by Carlos O'Ryan. This
  also includes a rework of the TAO_String_Managers and CORBA::(W)String
  implementations.

. Store Value Factories per orb instead of per process and made the
  storage thread safe.

. Add on demand write functionality that writes out GIOP fragments to
  reduce the memory usage

. The TIE files (_S.*) are not generated by default anymore by the
  IDL compiler. If you need these for your project, add -GT to the
  idl compiler flags.

. Added optional support for implicitly typed values. When the Valuetype
  library is compiled with TAO_HAS_OPTIMIZED_VALUETYPE_MARSHALING defined
  TAO will skip the marshaling of the value's type when it is allowed to
  do so. It is allowed by the spec to do so when the value's actual type
  matches the formal type for the parameter through which the value is
  passed. As older versions of TAO did not correctly unmarshal implicitly
  typed values, the default behavior is for TAO to always marshal the
  type id for values.

. Added support for CORBA specified truncatable valuetypes.

. Added support for CORBA specified POAManagerFactory.

. Added TAO-proprietary EndpointPolicy. This is used as a filter to limit
  which of an ORBs endpoints are inserted into an object reference. The
  endpoint policy is applied to POAManagers created via the POAManagerFactory
  and affect all POAs associated with that POAManager.

. Added a client-side connection optimization, the Parallel Connect Strategy
  This strategy makes the client evaluate all endpoints in profile at the same
  time when trying to connect to the server. For this to work the server must
  be run with -ORBUseSharedProfile 1 and the client must be run with
  -ORBUseParallelConnect 1.

. Fixed several bugs related to asynchronous connection establishment. These
  are represented by the AMI_Buffering tests and bug 2417's regression test.

. Refactored PICurrent, removing PICurrent_Copy_Callback classes, subsuming
  this functionality inside PICurrent_Impl where it can be controlled
  correctly. The copying of PICurrent objects still performs lazy/deferred
  copying where possible, only taking a real physical copy when modifications
  are attempted. Interest in PICurrent objects where lazy copies have been
  taken can now be correctly reversed when the lazy copy is destroyed fixing
  a range of call-back bugs that were performed on already destroyed objects.
  (For detail see bugzilla 2552.)

. Updated/Enhanced TAO/utils/nslist utilities nslist,nsadd and nsdel.
  These tools now allow for full ID.Kind processing (the separating character
  is user controlled, defaulting to .) and sub-context path processing (the
  separating character is also user controlled, defaulting to /).
  nsadd allows for (re)binding naming contexts in addition to final objects
  nsdel allows for destroying naming contexts when unbinding.
  nslist output has been prittyfide with user controlled character drawing
  of the naming context tree or sub-tree of full or limited depth.
  For full usage details execute these utilities with a ? parameter.

. Add the ability to use the sendfile API to send out data
  on the transport


USER VISIBLE CHANGES BETWEEN TAO-1.5 and TAO-1.5.1
====================================================

. Fixed LOCATION_FORWARD_PERM handling. See bugzilla #1777 for full details.

. Fixed bug in detecting name clashes between existing identifiers and
  extra code generated for AMI and AMH.

. Fixed bug in connection closure. See bugzilla # 2391

. Added support for the --enable-fl-reactor configure option to the
  autoconf build infrastructure to build the TAO_FlResource library.

. Added support for the --enable-qt-reactor configure option to the
  autoconf build infrastructure to build the TAO_QtResource library.

. Added support for the --enable-xt-reactor configure option to the
  autoconf build infrastructure to build the TAO_XtResource library.

. Fixed a race condition involving two threads active in the same
  connection handler at the same time. See bug# 1647 for details.

. Changed #include "..." preprocessor directives to use fully
  qualified (from $(ACE_ROOT), $(TAO_ROOT), or $(TAO_ROOT)/orbsvcs)
  paths.  We had been depending on non-standard behavior where files
  #included with "..." are first looked for in the current directory
  and then in the same directories used by #include <...>.  See bug
  #2448 for details.

USER VISIBLE CHANGES BETWEEN TAO-1.4.10 and TAO-1.5.0
====================================================

. Fixed Transport to handle incoming fragmented messages propperly, abstract
  interfaces TAO_Pluggable_Messaging and TAO_Transport have been
  modified. Custom transport/messaging implementations require
  interface modification.

. Fix collocation optimisation when a location forward is received directing a
  client to a collocated object.

. Prevent an OBJ_ADAPTER exception when using an object reference containing
  an ObjectID that corresponds to a collocated IORTable entry.

. Reverted solution that allowed POA-level control over access to
  security-enabled objects due to conflicts with the specification,
  i.e. the  Security::SecQoP* are not server-side policies.

. When suppressing any and typecodes during IDL compilation this will not
  trigger compile errors due to missing any insert operations

. Bug fix in IFR when creating typecodes for nested structs and unions.

. Added support for the --enable-tk-reactor configure option to the
  autoconf build infrastructure to build the TAO_TkResource library.

IDL COMPILER
------------

. Fix problem with missing includes in the skeleton files for imported arg
  trait declarations.

USER VISIBLE CHANGES BETWEEN TAO-1.4.9 and TAO-1.4.10
====================================================

. Fixed a bug, which allowed security unaware clients to make
  invocations on secure objects, when the ORB was configured with
  support for Security::SecQoPNoProtection.

. Fixed Bugzilla #2145, which was preventing the building of
  the IDL compiler on HPUX.

. Added boxed valuetype support to the Interface Repository
  loader.

. Fixed several bugs in the PICurrent implementation

. Fixed GOA factory name

. Fixed -ORBConnectionHandlerCleanup arguments to accept 0 and 1.

. Improved Portable Interceptor implementation.

. Autoconfig improvements.

. Improved Real-time CORBA support for dynamic threads.

IDL COMPILER:
-------------

. Some bug fixes. See bug #2375 and #2390.

USER VISIBLE CHANGES BETWEEN TAO-1.4.8 and TAO-1.4.9
====================================================

. Added new endpoint selector implementation - Optimized
  Connection Endpoint Selector. A member of the tao/Strategies library,
  use svc.conf file to load the OC_Endpoint_Factory object. See
  tests/AlternateIIOP/svc.conf for an example.

. Continued splitting ORB Services into stub, skeleton, and
  implementation libraries.  Changes to the Concurrency Service,
  Property Service, and RTEventLog Admin Service (TAO's RTEvent
  varient of the OMG Telecom Log Service) have been committed.

. Added a new ORB run-time option "-ORBUseLocalMemoryPool [0|1]" which
  controls an individual application's use of TAO's Local Memory Pool.
  TAO can use a local memory pool to satisfy some of its needs for
  heap storage, as it is often more efficient than using the
  platform's default memory allocator. The pool will always grow as
  large as necessary to satisfy memory allocations, but it will never
  shrink. This means that sometimes a process can retain memory that
  it no longer needs. If the default allocator is used then TAO gives
  memory back as soon as it is not needed.
  The UseLocalMemoryPool option selects between using the local memory
  pool or using the default allocator, where 0 means don't use the pool,
  1 means use the pool. The default is still controlled by the original
  compile-time option controlled by the #define TAO_USE_LOCAL_MEMORY_POOL
  which defaults to 1 if not specified.

. Add a property -ORBKeepalive to allow a user to specify that
  SO_KEEPALIVE is set on IIOP connections. See docs/Options.html
  and Bugzilla #2374.

. Add support for RTCORBA::TCPPrototocolProperties::keep_alive, when
  RTCORBA is used, and the application is using a Server or Client
  ProtocolPolicy.

. Refined the Telecom Log Service Strategy Interface.  Added methods
  to fetch/store capacity alarm thresholds, log QoS, and "week mask".
  Rework locking to avoid race conditions and to improve performance.

IDL COMPILER:
-------------

. Fixed bug in computation of repository ids for predefined types.

. Fixed bug in the handling of TAO_IDL_INCLUDE_DIR.

Interface Repository:
---------------------

. Fixed bug in the lookup of a valuetype member's type using its
  repository id.

. Fixed bug in IFR loader in checking for pre-existence before
  creating an entry corresponding to an IDL typedef.

. Fixed bug in lookup when checking for a local name clash.

. Fixed bug in the describe_interface() operation when the IDL
  interface being described has multiple parents.

USER VISIBLE CHANGES BETWEEN TAO-1.4.7 and TAO-1.4.8
====================================================

. Fixed bugs in code generation for interfaces that inherit from both
  concrete and abstract interfaces.

. Subset Anys and TypeCodes to a separate library. If you use Any/TypeCode
  or one of the core TAO libs uses it you should link the AnyTypeCode
  library with your application

. PICurrent is moved to the PI library

. POACurrent has been moved back from PI_Server to PortableServer

. Added IPv6 support for IIOP

. When Any and TypeCode generation is suppressed when compiling IDL
  no typecodes are generated anymore for user exceptions, they are not
  needed for the operation of the ORB

. When making AMI invocation and the send blocks we buffer the message
  and send it out when the transport is available again

. Emulated C++ exceptions are not maintained anymore. We are keeping
  the macros in the TAO code until x.5.1 is out, if nobody sponsors
  maintenance at that moment the macros will be removed from TAO.
  See also http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2256

. Support the latest AMI mapping, the old mapping will be kept working
  until 1.5.1 has been released. If you need the old mapping add
  the define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER to your config.h
  file before you build TAO and the TAO_IDL compiler

. Added CodecFactory::create_codec_with_codesets to create a codec with
  a specific codeset. See OMG issue 6050 for the background.

. PortableInterceptor::IORInterceptor has been splitted in IORInterceptor
  and IORInterceptor_3_0. If you use IORInterceptors read the ChangeLog for
  the details, maybe you have to update your code!

. Added the new Custom Servant Dispatching (CSD) feature to provide user
  applications with the ability to implement and "plug-in" custom strategies
  to handle the dispatching of requests to servants. This new feature is not
  currently tested for VxWorks. See TAO release notes for more information.

. Added support for an TAO "versioned" namespace.  When enabled, TAO
  library sources will be placed within a namespace of the user's
  choice or a namespace of the form TAO_1_4_7 by default, where
  "1_4_7" is the TAO major, minor and beta versions.  The default may
  be overridden by defining the TAO_VERSIONED_NAMESPACE_NAME
  preprocessor symbol.  Enable overall versioned namespace support by
  adding "versioned_namespace=1" to your MPC default.features file.

. Changed generated signatures of some valuetype member
  accessor/mutator pairs to be consistent with IN
  parameter semantics.

. Added spec-required generation of member-initializing
  constructor for valuetypes. See C++ mapping (03-06-03)
  section 1.17.2. Closes Bugzilla #2270.

. Added default include paths $TAO_ROOT, $TAO_ROOT/tao,
  $TAO_ROOT/orbsvcs, and $CIAO_ROOT/ciao to IDL compiler
  execution, eliminating the need to add them explicitly
  to the command line.

. Added immediate exits to IDL compiler when some name clash
  errors are encountered, avoiding a crash if parsing is
  continued. Closes Bugzilla #2281.

. Changed the behavior of the _default() method (generated
  for IDL unions that have an explicit or implicit default
  case label) to clean up memory used by the freed member,
  if necessary.

. Fixed bug in IDL compiler when handling a native exception
  in an operation declared in Messaging::ExceptionHolder.

. Although not presently supported by CIAO, added error
  checking to the IDL compiler's parsing of IDL home
  primary keys, which constrain the basic valuetype
  syntax in several ways.

. Fixed order of generated base class stub constructor calls
  when the IDL interface has both concrete and abstract parents.

. Fixed a bug in the handling of forward declared interfaces
  that have both concrete and abstract parents.

. Fixed the command line parsing to preserve the literal
  quotes if they are used in an include path that has a space.
  Closes Bugzilla #2219.

. Many changes related to refactoring of Anys and Typecodes
  into a separate library (POC is Johnny Willemsen
  <jwillemsen@remedy.nl>).

. Merging of many Notification Service changes/fixes from OCITAO to
  the DOC version.  These generally addressed stability issues such as
  memory leaks, thread leaks, etc.

. Introduction of the versioned namespaces changed the name of the
  factory function used for dynamically loading the Notification
  Service persistence mechanisms.  See the service configurator file
  in orbsvcs/tests/Notify/XML_Persistence for an example.

USER VISIBLE CHANGES BETWEEN TAO-1.4.6 and TAO-1.4.7
====================================================

. The Telecom Logging Service now supports dynamically loaded Strategies
  which can be used to implement a persistent log record store.  If none
  are specified, a default in-memory hash table implementation is used.

. The CodecFactory is moved to its own library. If you use this in your
  application include tao/CodecFactory/CodecFactory.h and link the
  TAO_CodecFactory with your app

. The ORBInitializer registry, PolicyFactory registry and ORBInitInfo
  are moved to the new PI library. If you use these clases include
  tao/PI/PI.h in your application code and link the new TAO_PI
  library with your application.

. All server side PortableInterceptor support is moved to the new
  TAO_PI_Server library. If you use this, include tao/PI_Server/PI_Server.h
  in your application code and link the new TAO_PI_Server lib

. A new set of examples and support code that show how to set up a
  multicast-based federation of  Notification Services is now available
  in $TAO_ROOT/orbsvcs/examples/Notify/Federation.

. Hard coded loading of services with Service Configurator now uses the
  ACE_DYNAMIC_SERVICE_DIRECTIVE macro which also works when the xml
  version of service config is enabled.

. The Codeset negotiation support is in its own library. The hooks are
  still present in the ORB Core to dynamically load the codeset support
  if needed. This behavior is overridden by the new ORB_init option
  -ORBNegotiateCodesets 0.

. The Boxed Value Type as specified by the OMG is now accepted by the
  TAO_IDL compiler.

. TAO clients now parse the OMG specified TAG_ALTERNATE_IIOP_ADDRESS
  profile component. To generate IORs using that component, add the
  new ORB_init option, -ORBUseSharedProfiles 1.

. Refactored TAO's codeset negotiation feature to be optionally loadable.
  The implementation is now in a separate library, TAO_Codeset. Applications
  not wishing to use codeset support may pass -ORBNegotiateCodesets 0 to
  ORB_init() to avoid loading the library. When building dynamic applications
  codeset negotiation is available by default. For static applications, the
  default is to *not* include codeset negotiation. Staticly linked apps
  needing codeset negotiation support must do two things:
  - Define the new MPC feature "negotiate_codesets=1" in default.features
    and regenerate makefiles
  - Add "#include <tao/Codeset/Codeset.h>" somewhere in their application
    source. Placing this in the source file that includes calling ORB_init()
    is probably the best place.

. Added CORBA::Object::_repository_id() and CORBA::Object::_get_orb()
  as described by the spec.

USER VISIBLE CHANGES BETWEEN TAO-1.4.5 and TAO-1.4.6
====================================================

. The RTOldEvent library has been removed. The RTEvent library has been
  split in a stub/skel and serv library.

. Support for bi-directional communication over SSLIOP.

. Servants are now always reference counted, in accordance with changes
  to the CORBA specification.

. Added a -x option to catior that works like -f except that it reads
  the IOR from standard input rather than from a file. This makes catior
  much more like the unix "cat" command, and enables it to be used in a
  pipeline.

. Changed the precedence rules for the -ORBListenEndpoints (aka
  -ORBEndpoint) so that the host identifier (either hostname or IP
  address) that appears in IIOP profiles is determined thus:

    1. value from hostname_in_ior (if specified);
    2. setting of -ORBDottedDecimalAddresses option;
    3. value for hostname in -ORBListenEndpoints specification;
    4. whatever TAO magically comes up with based on system
       configuration

  A new test (TAO/tests/IOR_Endpoint_Hostnames) verifies the
  operation of this feature.

. Changed the way that Bidirectional endpoint processing happens when
  -ORBDottedDecimalAddresses 1 is in effect. The previous behavior
  always used the setting of the receiver, but that caused problems when
  the sender and receiver were not using the same dotted decimal
  addresses setting.  Bidirectional endpoint processing now uses
  whatever the sender provides as the hostname since that's also what
  will be in that sender's IORs.

. Added a configuration property -ORBIMREndpointsInIOR [0|1] that
  controls whether ImR endpoints are written into persistent IORs. See
  $(TAO_ROOT)/docs/Options.html and bugzilla #2123 for usage.

. Increment the refcount on the servant in the id_to_servant and
  reference_to_servant methods of the POA.

. Improved g++ 4.0 support.  A number of RTTI related problems have been
  fixed, in addition to removal of duplicate internal ORB related
  singleton instances.

. Fixed assertion that occured in some thru-POA collocated calls.

. Fixed CORBA::UnknownUserException Any insertion problem.

. Fixed TypeCode equivalence failure when comparing aliased and
  unaliased TypeCodes of the same type.

USER VISIBLE CHANGES BETWEEN TAO-1.4.4 and TAO-1.4.5
====================================================

. The POA is rewritten so that it uses strategies for its implementation.

. The ImR handling is moved to the new ImR_Client library. If your server
  needs to register itself to the ImR you have to link the new ImR_Client
  library

. The MIOP part of the POA is moved to the GOA. See the latest version of the
  MIOP specification. You have to link now with the PortableGroup
  library and retrieve a GOA instead of the RootPOA.

. Implemented several missing parts of POA functionality as described
  by the latest corba specification. Missing functionality, incorrect
  exceptions, incorrect minor codes and much more.

. Splitted the huge PortableServer.pidl file in several smaller files
  and regenerated all the generated files in the repository.

. Move TAO_ORB_Manager from PortableServer to Utils library, this is a
  helper class.

. The POA has been split in Root_POA and Regular_POA, on this we will more
  in the future so that the Root_POA just pulls in the minimal set of things
  needed.

. The RootPOA now has "RootPOA" as its adapter name, previously it had
  an empty string.  This is required by the CORBA specification, you can
  overrule this by defining TAO_DEFAULT_ROOTPOA_NAME if you want to
  reduce the "RootPOA" string to be shorter, e.g., "".

. Added support for GNU G++ 4.0.  Additional details in ACE `NEWS' file.

. Explicit template support has been dropped for TAO and it is not possible
  to use it anymore.

. CORBALOC/CORBANAME patched a memory leak and fixed performance related
  to the use of defaulted object keys.

. Added support for Visual Age on AIX

. Made it possible to run most ORB core test with VxWorks in a cross host
  scenario where one part of the test runs on the host and the other part
  of the test runs on the VxWorks target

. The skeletons generated by the TAO_IDL compiler have been refactored
  to significantly reduce the size of server applications.  Please see

  http://www.dre.vanderbilt.edu/Stats/

  for metrics that illustrate the magnitude of the reduction.

. New TypeCode implementation that reduces the size of TypeCodes in
  memory at run-time.

USER VISIBLE CHANGES BETWEEN TAO-1.4.3 and TAO-1.4.4
====================================================

. Reimplemented the way that TAO_Transport deals with GIOP headers.  In
  some cases partial GIOP message headers were read and used as if a full
  GIOP header were received. [Bug 1681]

. GIOP fragment handling has changed where a single large allocation and
  copy occurs at the end of a fragment chain instead of an allocation and
  copy for every fragment received.

. The tao-config script has been replaced by pkg-config metadata files
  which are installed in ${prefix}/lib/pkgconfig by the automake build.

. SHMIOP respects now the dotted decimal addresses setting. When this is
  set it uses ip addresses instead of hostnames.

. Removed the usage of the ACE_x_cast macros, we are using the C++ casts
  from now on.  The TAO core libraries will be updated before the x.4.5
  release.

. Removed MPC code that creates unused and unnecessary subfolders in
  Visual Studio projects and makefiles.

. Fixed unclosed temporary file created by the IDL compiler on platforms that
  lack mkstemp. [BUGID:2026]

. Fixed IDL compiler bug related to handling null object references in a
  sequence. [BUGID:2027]

. Made behavior when marshaling null value of an abstract interface similar
  to the behavior of CORBA::Object.

. Made use of 'true' and 'false' with CORBA::Boolean more consistent in TAO
  source code and generated code.

. Fixed bug in code generation for typedefs of IDL arrays that are not declared
  at global scope or in a module (i.e., in an interface, valuetype, eventtype
  or home).

. Fixed bug in code generation of parent operations in AMI ReplyHandler
  interfaces.

. Changed remaining instances of C-style casts in generated code to the
  appropriate C++-style cast.

. Fixed typo in code generation of bounded sequences of CORBA::Object.

. Fixed bug in code generation for attributes which are unaliased bounded
  (w)strings.

. Changed implementation of TAO::Unknown_IDL_Type (a subclass of TAO::Any_Impl
  used when an Any is first decoded from the wire or created from a Dynamic
  Any) to contain its value in a TAO_InputCDR stream rather than an
  ACE_Message_Block*, thus cleaning up alignment and memory management code
  related to this type.

USER VISIBLE CHANGES BETWEEN TAO-1.4.2 and TAO-1.4.3
====================================================

. New pluggable protocol for GIOP over HTBP, known as HTIOP.  Source in
  orbsvcs/orbsvcs/HTIOP.

. All TAO-specific vendor IDs are now found in the "TAO" namespace.
  Documentation for these constants has also been improved in a number
  of cases.

. Further reduced inter-header dependencies, which should improve
  compilation times for TAO and TAO applications.

. Fixed memory leak in CDR encapsulation Codec's encode_value() method.

. Modified PerlACE scripts for Tests/test environment to allow
  per-platform customization of process startup delay.  Used the changes
  in various run_test scripts.

. SyncScope::NONE blocks during connects [Bug 1476].

. Improved compatibility with JDK orb.

. Added Wait on LF No Upcalls (MT_NOUPCALLS) wait strategy.  However,
  recent experiences with it indicate there may be problems in scenarios
  other than its original motivating case (see ChangeLog).  This feature
  should be considered EXPERIMENTAL, and use it at your own risk.

. New CORBALOC parsing is available. This feature allows TAO clients to
  use any third-party pluggable protocol in corbaloc strings.

. Fixed bug that caused memory fault when incoming object reference
  contains an unknown profile.

. Fixed problem in some modules when platform lacks unsigned long long
  support.

. Modified catior to allow decoding of additional protocols.

. The PortableServer library isn't depended anymore on the
  ObjRefTemplate and IORInterceptor libraries.  ObjRefTemplate and
  IORInterceptor are loaded on demand and depend on PortableServer.

. IDL compiler can be built for environments that lack unsigned long
  long.

. Reduced the amount of code generated by the TAO_IDL compiler when
  using forward declarations.

. Naming Service implementation memory leak fixes.

. Split ORB Services into stub, skeleton, and implementation libraries.
  Changes to the Naming, Trading, Event, Notification, and Logging
  Services have been committed.

. Common utilities (tao_imr, tao_ifr, nslist, nsadd, nsdel,
  NamingViewer) now installed in $ACE_ROOT/bin.

. Changed #includes of orbsvcs header files to be consistent.  The
  pathname now always contains a "orbsvcs/" prefix.

. Notification Service EventReliability and ConnectionReliability QoS
  have been added to bring the DOC version of Notification Service
  into feature parity (in this area) with OCITAO's 1.3a version of the
  Notification Service.  Note that due to changes between 1.3a's
  source base and DOC's 1.4.3 source base, this is a re-implementation
  of the changes and not a simple port.

  In addition to the changes made directly to the Notification Service
  a number of test and example programs have been created for the
  reliable notification service. These programs may be found in
  subdirectories of $TAO_ROOT/orbsvcs/tests/Notify. A README file
  in each directory provides more detailed information, and a run_test.pl
  script is included to run the example or test.

. A change has been made to the Notification Service IDL to improve build
  times and reduce the Notification Service footprint. The change suppresses
  the generation proxy and stub code for the many interfaces that are
  specified by the OMG, but are not implemented in TAO.

. Implementation Repository refactored to allow the locator and
  activator to be used as services in the ACE Service Configurator
  framework.  The locator and activator services have been split into
  separate libraries and executables.  There have also been
  miscellaneous bugs fixed and performance enhancements made.

. Fixed Load Balancer binary generation problem.  Libraries were being
  created rather than executables.

. Work around MSVC++ 6 namespace brain damage in new Security/SSLIOP
  code.

. Fixed memory management problem in SecurityLevel3 code.


USER VISIBLE CHANGES BETWEEN TAO-1.4.1 and TAO-1.4.2
====================================================

. Overall
  - Support for g++ 3.4.1.
  - Support added for latest HP aCC compiler.
  - Improved Doxygen documentation.
  - Reduced header file dependencies, which should speedup compilation
    and help minimize static footprint.

. ORB
  - Fixed memory leak in DII exception handling.
  - Fixed insertion of label values when creating a union type code
    with create_union_tc().
  - Support for retrieving AMI and AMH reply handlers from a local
    memory pool.
  - Fixed location forwarding to collocated objects.

. POA
   It is now possible to pass user-defined policies unknown to the
    POA with corresponding registered policy factories to the
    POA::create_POA() method via its policy list parameter, as
    required by the CORBA specification.

. TAO_IDL
  - Closed security hole on platforms that support mkstemp() function.
  - Fixed potential buffer overrun problem.
  - A number of scoped name bugs have been fixed, including some
    workarounds for MSVC++ 6 scope resolution problems.
  - Fixed mixing of *Implicit and *Explicit inheritance lines when the
    there is a chain of inheritance in component homes.
  - Improved error checking of component and home declarations.
  - Code generation for valuetypes that support one or more abstract
    interfaces.
  - Added new "-GA" option that causes CORBA::Any operators and
    TypeCode bodies to be generated in a separate "fooA.cpp" file.
    Helps reduce footprint for applications that do not use Anys or
    TypeCodes.
  - Added required _downcast() method to generated value factories.
  - Disabled generation of implementation class for abstract
    interfaces.
  - Removed support for reading an IDL file from stdin.  This feature
    is legacy code used for debugging the IDL compiler in the early
    days of its implementation, and is not useful in application
    situations.
  - Generated stub/skeleton inline files now end in ".inl" instead of
    ".i".  The latter is generally used as the extension for
    pre-processed C sources.
  - Process multiple IDL files in a single execution by iteration
    in a single process, rather than spawning a process for each
    file as before.
  - Added the remaining spec-defined sequences of predefined types
    to the CORBA namespace in TAO.

. Added CPU utilization load monitor to TAO's Cygnus load balancer.

. Added basic CSIv2 support, which is the latest CORBA Security
  architecture specification.

USER VISIBLE CHANGES BETWEEN TAO-1.4 and TAO-1.4.1
==================================================

ORB
---
.  Changed the name of a parameter to the TAO type code
   internal method to avoid a name clash with STL.

. Added the spec-required ostream insertion operator for
  CORBA::Exception* to go with the existing ostream
  insertion operator for CORBA::Exception&.

. Moved the above ostream insertion operators into the
  CORBA namespace, so they cannot be accidentally hidden by an
  application.

. Moved the declaration of Any operators for some ORB
  types so that the corresponding definitions may
  remain unlinked if the Any operators are not used in
  an application.

. Fixed typo in type code factory code that is compiled
  only when ACE_SWAP_ON_WRITE is defined.

. Several fixes to MakeProjectCreator (MPC) files, which
  generate GNU makefiles, Borland makefiles, and Microsoft
  Visual Studio project files.

. Fixed Any insertion and extraction operators for bounded
  strings and wstrings to prevent an error if they are
  inserted as bounded with bound 0 and extracted as
  unbounded, or vice versa.

. Deprecated the TAO-specific _type() method for exceptions.
  which is no longer used anywhere in TAO, and is retained
  solely for backward compatibility.

. Fixed bug in TAO_SSLIOP pluggable protocol that prevented large
  requests from being sent.  [Bug 1429]

. Cleaned up interceptor memory leaks that occurred when
  CORBA::ORB::destroy() was called.

. Fixed problem where a ServerRequestInterceptor could be called after
  the ORB was shutdown.  [Bug 1642]

. Overhauled PICurrent support to fix several problems. [Bug 1215, 1738]

. SSLIOP documentation is now available.

. Fixed memory leaks in servers when the ORB is operating in a
  thread-per-connection  mode. This problem showed up when clients
  keep connecting and disconnecting from the servers.

. Fixed memory leaks in AMI clients that connect to a servers over
  unreliable connections that keeps getting dropped.

. Fixed a race connection in Any_Impl implementation.

. Fixed a byte order problem with DSI gateways

. Added support for OVATION to work with this BFO of TAO.

IDL COMPILER
-------------

. Changed the names of some local variables in generated
  operation code, to reduce that chance of a name clash.

. Fixed bug where a #pragma version directive is sometimes
  not reflected in the generated repository id.

. Disambiguated generated template instantiations for array
  _var, _out and _forany classes, when two or more arrays
  have the same element type and bound.

. Added check for a name clash between a valuetype member
  and the first segment of a scoped name referenced in
  the valuetype.

. Fixed incorrect code generation for the CDR operator of a
  struct/union/exception with an undefined forward declared
  interface member.

. Fixed incorrect code generation for operation arguments
  that are typedefs of char, octet and boolean.

. Fixed bug in handling complex recursive types.

. Added -GId command line option to generate line and
  file debug info in *I.* files, similar to what is
  already generated in *C.* and *S.* files. This debug
  info generation is now off by default in *I.* files.

. Fixed the handling of included orb.idl file to generate
  corresponding C++ includes for the files orb.idl
  itself includes, which contain spec-required declarations
  of sequences of basic CORBA types.

. Fixed generation of ORB file includes triggered by the
  presence of one or more abstract interfaces in an IDL file.

. Added check to the generation of _setup_collocation()
  method for abstract interfaces, to make it more robust.

. Added a version of the realpath() system function that
  can be used with LynxOS, which does not have a native
  version.

. Fixed code generation for bounded strings and wstrings
  when they appear anonymously (without a typedef) as operation
  parameters.

. Fixed code generation of flat names for AMI-related types.

. Fixed errors in code generation of sequences of components
  and eventtypes.

. Fixed code generation of CDR operators for aggregate types
  that contain one or more abstract interfaces.

. Fixed bogus errors produced when there are repeated forward
  declarations of an interface.

. Fixed errors in some use cases of the propagation of a #pragma
  prefix directive to nested scopes in generated repository ids.

. Fixed errors in code generation for attributes in Asynchronous
  Method Handler (AMH) classes.

. Fixed a bug that caused the IDL compiler to crash when it sees
  certain kinds of illegal IDL.

. Fixed problems in the interaction of checks for local interface
  and for null object reference when marshaling an interface
  member of an aggregate type.

. Fixed generation of operations inherited by a local interface
  from a non-local one - these operations must be regenerated
  as pure virtual.

. Added a space between some generated template parameter
  opening brackets and a leading double colon of a fully
  scoped name, since some compilers would read "<:" as
  the digraph character for ']'.

. Fixed bug in code generation for an array of typedef of
  string and wstring.

. Fixed a bug in the generation of repository ids for
  explicit, implicit and equivalent interfaces for component
  homes.

. Fixed bugs in the generation of marshaling and demarshaling
  code for aggregate types with component or eventtype members.

ORB SERVICES:
-------------

IFR:
---

. Fixed bug in creating entries for attributes, which in CORBA 3.x may
  have separate get- and set- exceptions lists.

. Added some method overrides to disambiguate multiple inheritance
  problems some compilers would have in classes added to support CORBA
  3.0 extensions.

. Fixed bugs in entering attributes of abstract and local interfaces,
  and in querying for attributes of components.

. Added a "-m" option to IFR_Service to enable multicast discovery of
  the service.

LOAD BALANCING
--------------

. Added two new strategies, namely LoadAverage and LoadMinimum.

NOTIFICATION SERVICE:
---------------------
. Corrected the implementation to add the caller's <subscribed_types>
  to the Admin Object's types. This solves the problem that if a
  proxy's connect_structured_push_consumer() is called *AFTER* the
  proxy's subscription_change(), then the subscriptions do not work.

. Added the -NoUpdates option to the Notification svc.conf
  options. If this option is specified, the
  subscription_change/offer_change messages are NOT sent to proxy
  objects.  This option is useful to turn off entire updates for
  applications that do not reply on subscription_change/offer_change
  messages.


USER VISIBLE CHANGES BETWEEN TAO-1.3.6 and TAO-1.4
==================================================

IDL COMPILER:
-------------
. Fixed bug related to the order of #pragma prefix and #include
  directives

. Fixed bug in generation of copy constructor for AMH interface
  classes.

. Fixed incorrect handling of a parameter name in an AMI sendc_xxx
  operation that clashes with a C++ keyword.

. Readded the generation of _unchecked_narrow () back into the stub
  code since it is required by the latest OMG CORBA specification.

CORE ORB
-------

. SCIOP endpoints are not created by default. They need explicit
  specification of -ORBEndpoint sciop:// at startup.

. Fixed a bug that caused the ORB to dump a core when server side
  interceptors returns an exception and if the operation parameters
  contains a sequence an out parameter.

. Fixed a bug that caused extraction of basic data types that are
  aliased from an Any.

. Added a couple of regressions tests for some of AMH features.

. Lots of other bug fixes (see the bottom of this message for a
  complete list of bugzilla bugids fixed in this beta).

. Fixed a problem with dynamic loading of the ORB. This was introduced
  by "magic" static constructors in the TAO PortableServer headers
  where dynamic loading/unloading of the ORB failed.

. Added an option, -ORBDisableRTCollocation which allows users to
  disable the RT collocation technique used by TAO and fall back on the
  default collocation technique used for the vanilla ORB.

. Prevent the TP_Reactor used within TAO from exiting when it receives
  a EINTR during select ().

ORB SERVICES
------------

. Added new security variable so that libTAO_Security could be built
  independently of libTAO_SSLIOP, and set the default to true.

. An initial implementation of the FTCORBA spec has been added to
  TAO. This release features an initial cut of ReplicationManager,
  FaultNotifier, and a FaultDetector. Please see

  $TAO_ROOT/orbsvcs/tests/FT_App/README

  for a simple example that uses the different FTCORBA features that
  have been implemented in TAO.

. Fixed a bug, in PG_ObjectGroupManager::remove_member () methods
  which caused the group entry to be available in the location_map
  when a member of the object group is removed.