File: history.txt

package info (click to toggle)
libjgroups-java 2.12.2.Final-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 8,724 kB
  • sloc: java: 109,098; xml: 9,423; sh: 174; makefile: 4
file content (2438 lines) | stat: -rw-r--r-- 79,651 bytes parent folder | download | duplicates (3)
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


			     History List
			     ============


[For current version, see file Version.java (or invoke 'java org.jgroups.Version')]


bba         = Bela Ban, bba@cs.cornell.edu
bela        = Bela Ban, belaban@yahoo.com
i-scream    = Gianluca Collot, gianlucac@tin.it
igeorg      = John Georgiadis, i.georgiadis@doc.ic.ac.uk
jmenard     = Jim Menard (jimm@io.com)
fhanik      = Filip Hanik (filip@filip.net)
vlada       = Vladimir Blagojevic (vladimir@cs.yorku.ca)
rrokytskyy  = Roman Rokytskyy (rrokytskyy@acm.org)
akbollu     = Ananda Bollu (akbollu@users.sf.net)
whizkid_bay = Mandar Shinde (whizkid_bay@users.sf.net)
ovidiuf     = Ovidiu Feodorov (ovidiuf@users.sf.net)
romuald     = Romuald du Song
yaronr		= Yaron Rosenbaum (yaronr@mercury.co.il)
publicnmi	= Robert Schaffar-Taurok (robert@fusion.at)
ossiejnr    = Chris Mills (chris.mills@jboss.com)






***********
THIS FILE IS NOT UPDATED ANYMORE AS OF MAY 2 2006, I SWITCHED TO JIRA FOR THE ROADMAP AND HISTORY.
http://jira.jboss.com/jira/browse/JGRP
***********





Version 2.3
-----------

- Changed method signature of RpcDispatcher.callRemoteMethod() to throw a Throwable.
  Previously it returned the exception as an object, now the exception will be thrown.
  Callers of these methods have to change their code, so this is an incompatible change. However,
  these calls are not used in JBossCache and JBoss Clustering.
  (http://jira.jboss.com/jira/browse/JGRP-154)
  (bela Feb 16 2006)

- Added encryption of entire message to ENCRYPT
  (http://jira.jboss.com/jira/browse/JGRP-190)
  (bela Feb 9 2006)

- Converted Word prog guide to docbook (./doc/progguide). Done by gdvieira@ic.unicamp.br
  (gdvieira@ic.unicamp.br Jan 26 2006)

- Created global JGroups thread group (all threads belong to it)
  (bela Jan 19 2006)

- Added AUTH protocol, samle configs and documentation. http://jira.jboss.com/jira/browse/JGRP-164
  (ossiejnr Jan 12 2006)

- Fix in ReplicatedHashtable where state transfer notification is not emitted
  (http://jira.jboss.com/jira/browse/JGRP-175)
  (David Forget Jan 5 2006)

- init() is now called after all protocols have been created
  (bela Jan 5 2006)

- Fixed bug where srv_sock_bind_addr could be different from transport's bind_addr.
  This could cause incorrect suspect messages.
  (http://jira.jboss.com/jira/browse/JGRP-173)
  (bela Jan 3 2006)

- Added total order SEQUENCER protocol. See doc/SEQUENCER.txt for details
  (bela Dec 30 2005)





Version 2.2.9.1
---------------

- Created label JGROUPS_2_2_9_1
  (bela Dec 29 2005)

- Fixed bug "binding to same interface twice fails"
  (http://jira.jboss.com/jira/browse/JGRP-167)
  (bela Dec 23 2005)

- Fixed merge bug occurring when members are joining during a merge
  (http://jira.jboss.com/jira/browse/JGRP-139)
  (bela Dec 23 2005)

- Fixed ENCRYPT bug where down messages were queued unnecessarily
  (JIRA: http://jira.jboss.com/jira/browse/JGRP-166)
  (bela Dec 21 2005)

- Replaced Vector for members and pingable_members in FD with CopyOnWriteArrayList.
  Fixes  (http://jira.jboss.com/jira/browse/JGRP-161)
  (bela Dec 16 2005)




Version 2.2.9
-------------

- Created label JGROUPS_2_2_9
  (bela Dec 9 2005)

- Rewrite of TCP_NIO
  (Scott Marlow and Alex Fu Nov 2005)

- Added support for Receiver in JChannel (push based message reception)
  (bela Oct 2005)

- Added JChannel.dumpStats(): returns information about the various protocols, and the channel itself,
  as a map. Currenty, only NAKACK, TP and FC have implementations
  (bela July 26 2005)

- Eliminated creation of 3 input and 2 output streams *per message* in TP. These streams are now
  created at TP startup and simply reset when a message is to be received or sent
  (bela July 25 2005) 

- Improved performance of RpcDispatcher, MethodCall (is now Stremable), added unit tests
  (bela July 25 2005)

- Improved javadoc: copied portions of User's Guide to doc comments in source files,
  fixed javadoc warnings; added project and package overviews; tweaked build target. 
  (chrislott July 17 2005)
  
- Headers are now always created in a Message, because we always add at least 1 header
  to a message
  (bela July 15 2005)

- Changed org.jgroups.util.Digest to use a HashMap rather than arrays
  (bela July 12 2005)

- Refactored UDP and TCP into extending a common transport (TP)
  (bela July 4 2005)

- Completed first version of JMX instrumentation
  (bela June 14 2005)

- Added STATS protocol, provides stats via JMX
  (bela June 7 2005)

- Added org.jgroups.jmx package, contains various adapters to expose channel and protocols
  via JMX. Added jmxri.jar (can be removed once JDK 5 is baseline)
  (bela June 1 2005)

- Replaced System.err.println() with log.error() in setProperties() of all protocols
  (bela May 30 2005)

- Added xmit_from_random_member: retransmits will go to a random member, rather than the
  original sender of the message. This eases the burden on senders in large groups
  (bela May 25 2005)

- Fixed http://jira.jboss.com/jira/browse/JGRP-79 (problems with nulling src addresses on
  loopback adapter in Windows). See JGroups/docs/NullingSrcAddresses.txt for details.
  (bela May 19 2005)

- Fixed problem with PingWaiter/PingSender in applets (http://jira.jboss.com/jira/browse/JGRP-86)
  (bela Ma 19 2005)

- Fixed STATE_TRANSFER stuck in Channel.queue bug (http://jira.jboss.com/jira/browse/JGRP-80)
  (bela May 10 2005)

- Added support for multiple locked locks to the DistributedLockManager.
  (publicnmi Jun 08 2005)



Version 2.2.8
-------------

- Created branch JGROUPS_2_2_8
  (bela April 29 2005)

- Fixed problem with deadlock detection (e.g. in RpcDispatcher). Caller always passed new call stack,
  rather than adding to existing call stack
  (bela April 25 2005)

- Removed xerces JARs
  (bela April 25 2005)

- UDP: fixed incorrect marshalling of IpAddresses with additional_data
  (http://jira.jboss.com/jira/browse/JGRP-63)
  (bela April 23 2005)

- Replaced getClass().getClassLoader() with Thread.currentThread().getContextClassLoader().
  JIRA issue http://jira.jboss.com/jira/browse/JGRP-34
  (bela April 23 2005)

- UDP: synchronization around message marshalling and sending, non-sync could lead to intermingled
  byte arrays at the receiver, due to concurrent access to out_stream
  (bela April 20 2005)

- Fixed bug where IpAddress.additional_data was not marshalled
  (bela April 19 2005)

- Removed RWLock, replaced uses with ReadWriteLock from util.concurrent
  (bela April 8 2005)

- Removed TransactionalHashtable (obsolete, replaced by JBossCache)
  (bela April 8 2005)

- GMS/CoordGmsImpl: added merge_leader flag. If enabled, the member can initiate a merge although
  it is not the coordinator
  (bela April 7 2005)

- UDP: bind_to_all_interfaces now allows the multicast receiver socket to bind to all
  available interfaces, only supported under JDK 1.4 and up
  (bela April 1 2005)

- MPING: binds now to all interfaces (bind_to_all_interfaces has to be to true), only supported under
  JDK 1.4 and higher
  (bela April 1 2005)

- Fixed stopping outgoing packet handler (http://jira.jboss.com/jira/browse/JGRP-49)
  [fix by Steve Nicolai]
  (bela April 1 2005)

- Added MPING. Allows for multicast discovery on a TCP-based stack
  (bela March 31 2005)

- ConnectionTable:
  - Individual thread per Connection so send() doesn't block
  - timeout for socket creation (sock_conn_timeout)
  (bela March 24 2005)

- TCPPING: remove myself from pinged members
  (bela March 23 2005)

- Added patch by David Orrell (external addresses for TCP/ConnectionTable)
  (bela March 17 2005)

- Fixed JGRP-42 (MethodCall doesn't correctly handle inheritance)
  org.jgroups.blocks.MethodCall was updated to walk the class hierarchy and locate method not only 
  in the current class, but also in the superclasses and superinterfaces. There is a new test that
  contains use cases: tests/junit/org/jgroups/blocks/MethodCallTest.java
  (ovidiuf Feb 18 2005)

- org.jgroups.util.Rsp: changed the sender's type from Object to Address.
  (ovidiuf Jan 19 2005)

- Modified the RpcDispatcher's API to allow more than one ChannelListener to be registered
  to the underlying JChannel.
  (ovidiuf Jan 19 2005)

- Added MessageDispatcher.getMessageListener() to make possible to multiplex more than one 
  MessageListeners in top of an already configured MessageDispatcher/RpcDispatcher.
  (ovidiuf Jan 19 2005)

- Implemented JGRP-15 (Concurrent startup of initial members without merging): when multiple members are started
  simultaneously, and no other member is running yet, they form singleton groups, and merge after some time.
  GOAL: elect a coordinator out of all concurrent (client-)members and avoid a merge.
  (bela Jan 5 2005)

- Fixed JGRP-10 (incorrect computation of wait time in waiting loops)
  (bela Dec 31 2004, on suggestion from Zac Hansen)

- Added system property ignore.bind.address, which ignores the system property bind.address
  (bela Dec 12 2004)

- Changed Util.objectFromByteBuffer() to use ContextObjectInputStream. This uses the classloader of the caller
  rather than the system classloader
  (bela Nov 29 2004)

- MethodCall: changed Class.getMethod() to Class.getDeclaredMethod(). This allows for invocation of non-public
  methods, e.g. private methods from within the same class, or package-private methods from within the same package
  (bela Nov 1 2004)

- Added leading byte for Message to indicate which fields are null and non-null. Saves 5 bytes/msg
  (bela Oct 8 2004)

- Dest address is not marshalled any longer; saves 10 bytes/msg
  (bela Oct 8 2004)

- Implemented Streamable for more classes (headers)
  (bela Oct 8 2004)

- Changed FD's BroadcastTask: this could *not* fire in the case where a task was stopped and immediately
  restarted
  (bela Oct 7 2004)

- Fixed incorrect merging in TUNNEL/GossipClient
  (bela Oct 7 2004)

- Added support for bind.address system property in FD_SOCK
  (bela Oct 6 2004)

- Fix for hanging merge when coordinator/participant crashes or shuns-and-reconnects during merge
  (bela Oct 5 2004)

- Removed object serialization almost entirely; replaced it with Streamable. Changed Message, IpAddress and some
  Header subclasses (not yet all) to support Streamable. UDP now uses Streamable both for Message and Message lists
  (used in bundling). Rough performance increase ca 30% (size of serialized data ca. 30% smaller to).
  (bela Oct 4 2004)

- UDP: removed 1 copy operation per sent message by using ExposedByteArrayOutputStream rather than ByteArrayOutputStream.
  ByteArrayOutputStream.toByteArray() copies the buffer, ExposedByteArrayOutputStream.getRawBuffer() returns a
  *reference* to the raw buffer plus and offset and length. This is then passed to the resulting DatagramPacket
  (bela Sept 26 2004)

- Added ExposedByteArrayOutputStream (exposes the raw buffer), avoids copying the underlying byte buffer
  (bela Set 26 2004)

- Added Magic{Input,Output}ObjectStream. They use the magic numbers mapping table to provide efficient
  class descriptors on serialization
  (bela Sept 24 2004)

- Added Simulator and FCTest
  (bela Sept 23 2004)

- More IntelliJ Inspector changes
  (bela Sept 23 2004)

- Various fixes for findbugs and IntelliJ's Inspector
  (bela Sept 22 2004)

- Added CondVar and CondVarTest
  (bela Sept 22 2004)

- Removed Ensemble
  (bela Sept 21 2004)

- Removed some unneeded unit tests
  (bela Sept 21 2004)

- Modified Promise.getResult(): timeout is now implemented correctly. getResultWithTimeout() now also throws
  a TimeoutException
  (bela Sept 16 2004)

- pbcast.STATE_TRANSFER/STABLE/JChannel: modified state transfer; timeout is now passed down
  to the protocols
  (bela Sept 16 2004)

- Added MERGE3
  (bela Sept 15 2004)

- FD_SOCK: added sending message to signal regular termination. Plus, each connection is handled
  on a separate thread
  (bela Sept 14 2004)

- UDP: added code to prevent port reuse when using ephemeral ports, and ports are reused on some
  operating systems (e.g. Win2K). Use num_ports_used > 0 to enable this feature
  (bela Sept 13 2004)

- FD_SOCK: added bind address for server socket
  (bela Sept 10 2004)




Version 2.2.7
-------------

- Created distribution (CVS tag = JG_2_2_7_final)
- Created distribution (CVS tag = JG_2_2_7)
  (bela Sept 8 2004)

- Re-implemented Membership.sort (using Collections.sort())
  (bela Sept 6 2004)

- Fixed & simplified the discovery algorithm in TCPPING
  (bela Sept 4 2004)

- Fixed NPE in castViewChange() caused by concurrent reception of leave() and handleLeaveRequest() methods
  (bela Sept 3 2004)

- Added automatic reconnect feature for PullPushAdapter on shun-reconnect sequence
  (bela Sept 2 2004)

- Fixed incorrect determination of coordinator/participant after a merge where new coordinator was *not*
  the one who executed the MERGE. Suggested by yaronr
  (bela Aug 31 2004)

- Removed checks for self-delivery in FC: flow control needs to apply also for messages sent
  from X to itself
  (bela Aug 30 2004)

- Added discard_incompatibe_packets to UDP (suggested by Noronha, Vijay" <Noronha@Synygy.com>)
  (bela Aug 17 2004)

- Added checking for system property bind.address (set by JBoss) in TCP (like UDP)
  (bela Aug 14 2004)

- Applied patches by Markus Puetz (reading of systems properties fails in JLNP)
  (bela Aug 12 2004)

- Fixed NPE in MethodCall caused by null args/types
  (bela Aug 9 2004)

- Reverted use of ContextInputStream in Message.getObject()
  (bela Aug 6 2004)







Version 2.2.6
-------------

- Created distribution (CVS tag = JG_2_2_6)
  (bela Aug 4 2004)

- Fixed upProcessingThread in MessageDispatcher: using org.jgroups.util.Queue now (bug#: 998920)
  (bela Aug 4 2004)

- Fixed incorrect start()/stop() sequence of GossipClient in TCPGOSSIP
  (bela Aug 4 2004)

- ChannelFactory: specified new createChannel() method that assumes protocol stack configuration
  information has already been set on the factory (e.g. at construction)

- JChannelFactory: Implemented ChannelFactory.createChannel() and provided type specific constructors;
                   a default constructor was provided for backwards compatability

- ChannelException: updated to support exception chaining in a 1.4 VM and to provide 1.4-like
  exception chaining behavior for a 1.3 VM
  (jiwils July 31 2004)

- Channel: protected access/empty constructors were removed
  (jiwils July 29 2004)

- JChannel: added 5 type-specific constructors for JChannel; deprecated the JChannel(Object)
  constructor - this means JChannel(null) construction is not supported; use JChannel() instead
  (jiwils July 29 2004)
  
- ConfiguratorFactory: modified to support JChannel constructor changes
  (jiwils July 29 2004)

- MessageDispatcher: m_upProcessingThread now terminates correctly on stop() (bug#: 998920)
  (bela July 29 2004)

- Added logic to ClientGmsImpl to abort join() when leave() or stop() is called before join() returned
  (bela July 29 2004)

- Util.objectFromByteBuffer() and Message.getObject() now use ContextObjectInputStream. This ensures that the
  correct context classloader is used
  (bela July 28 2004)

- Fixed bug that - when deadlock_detection was enabled - and scheduler was null (should not be the case),
  messages were discarded
  (bela July 26 2004)

- Fixed a TUNNEL bug.
  (ovidiu July 12 2004)

- Ran code through Intellij inspector, changed various things (e.g. redundant code etc).
  (bela July 4 2004)




Version 2.2.5
-------------

- Created distribution (CVS tag = JG_2_2_5_0)

- pbcast.NAKACK/NakReceiverWindow: messages that have been received in order are sent up the stack
  (= delivered to the application). Delivered messages are removed from NakReceiverWindow.received_msgs
  and moved to NakReceiverWindow.delivered_msgs, where they are later garbage collected (by STABLE). Since
  we do retransmits only from sent messages, never received or delivered messages, we can turn the
  moving to delivered_msgs off, so we don't keep the message around, and don't need to wait for
  garbage collection to remove them
  (bela June 24 2004)

- Changed UDP: multicast messages are now sent via mcast_send_sock and received via mcast_recv_sock. This has
  to better performance when sending/receiving a lot of mcast msgs
  (bela June 24 2004)

- Multicast messages now use the mcast_sock
  (bela June 12 2004)

- Added system property resolve.dns: if set to false, IpAddresses will not attempt to resolve DNS host names, but
  just print addresses in dotted-decimal format
  (bela June 8 2004)

- UDP: system property bind.address overrides configuration option. Start e.g. with -Dbind.address=192.168.0.10
  (bela June 8 2004)

- UDP: we cannot remove the header, because further retransmissions will fail. This lead to the
  'missing UDP header bug'. Replaced removeHeader() with getHeader()
  (bela May 18 2004)

- Removed all deprecated methods from MethodCall.
- Changed all dependent classes (RpcDispatcher, RpcProtocol etc)
- Removed MethodLookup, MethodLookupJava and MethodLookupClos
  (bela May 14 2004)

- Properties for a JChannel constructor can now be regular files
  (bela May 12 2004)

- Removed deprecated methods from RpcProtocol/RpcDispatcher
- Made MethodLookupJava the default in RpcProtocol/RpcDispatcher
- RequestCorrelator does now not use Scheduler when deadlock_detection=false, but calls
  handleRequest() directly
  (bela May 12 2004)

- Created version 2.2.5
  (bela May 12 2004)




Version 2.2.4
-------------

- Created distribution (CVS tag = JG_2_2_4)

- Updated NakReceiverWindow (used by NAKACK): replaced received_msgs and delivered_msgs (lists) with TreeMaps.
  This removes linear cost for traversals, and makes lookups constant.
  (bela May 6 2004)

- Changed NAKACK.sent_msgs to use TreeMap (sorted seqnos as keys)
  (bela May 3 2004)

- Removed log4j directory
  (bela May 2 2004)

- Solved bug #943709
  (yaronr April 28 2004)  

- Added class org.jgroups.util.ReentrantLatch
  (yaronr April 28 2004)

- Solved bug# 939253
  Updated MessageDispatcher.java (MessageDispatcher + ProtocolAdaptor).
  (yaronr April 28 2004)

- Optimization in RpcDispatcher: before marshalling the args and handing the call over to the superclass, we
  make sure the destination list is not empty: if empty we return immediately.
  (bela May 1 2004) 

- Fixed bugs #943480 and #938584. STABLE handles SUSPEND_STABLE and RESUME_STABLE events, and STATE_TRANSFER
  sends SUSPEND_STABLE before fetching the state and RESUME_STABLE after receiving the state, to prevent
  message garbage collection from going on during a state transfer
  (bela April 28 2004)

- Fixed bug #943881 (patch by Chris Wampler)
  (bela April 28 2004)

- Fixed bug #938584 (NAKACK.retransmit problem)
  (bela April 27 2004)

- Changed default format for XML properties to a simpler format (similar to JBoss)
  Modified all XML files in ./conf
  'XmlConfigurator <input file> -new_format' can be used to convert an old XML format into a new one
  (bela April 26 2004)

- Created new version
  (bela April 26 2004)




Version 2.2.3
-------------

- Added -new_format flag to XmlConfigurator; dumps input XML file in the format used by JBoss
  (bela April 24 2004)

- Added flag use_scheduler to RequestCorrelator, which allows one to bypass the Scheduler altogether.
  If deadlock detection is enabled, however, the Scheduler is needed, therefore use_scheduler is set to true.
  Use the method setUseScheduler() to enable/disble this
  (bela April 23 2003)

- Changed handling of Protocol.setProperties(). Each Protocol has to call super.setProperties() if it wants
  to store the properties in this.props now
  (bela April 23 2004)

- Made several protocols less verbose (info --> debug level)
  (bela April 22 2004) 

- Fixed NAKACK retransmission bug (#938584)
  (bela April 22 2004)

- Minor change in Scheduler: replaced sched_thread.interrupt() with throwing of exception
  (bela April 15 2004)

- Created distribution (CVS tag = JG_2_2_3)
  (bela March 31 2004)

- Conversion of Trace-based logging system to commons-logging.
  Removed log4j subdir, removed org.jgroups.log package
  (bela March 29 2004)

- Added commons-logging.jar
  (bela March 29 2004)

- Created new version
  (bela March 29 2004)




Version 2.2.2
-------------

- Made UpHandler/DownHandler threads in Protocol daemon threads
  (bela March 17 2004)

- MessageDispatcher: handling SET_LOCAL_ADDRESS, cache local_addr correctly (suggested by Yaron Rosenbaum)
  (bela March 16 2004)

- Added more trace information to RpcDispatcher, MessageDispatcher, RequestCorrelator and GroupRequest
  (bela March 9 2004)

- Fixed state transfer for DistributedHashtable (should do it the same way for Channel.getState())
  (bela March 8 2004)

- Created new version
  (bela March 8 2004)





Version 2.2.1
-------------

- Created distribution (CVS tag = JG_2_2_1)

- Added bundling capability to UDP. Bundles multiple smaller message into a larger one and then sends the
  larger message. Waits with sending until n bytes have accumulatd or n ms have elapsed, whichever is first
  (bela March 1 2004)

- Added first version of new fragmentation protocol (FRAG2). Main 2 advantages over FRAG: doesn not serialize message
  and does not copy message (deferred until the message hits the transport). FRAG2 is about 3 times faster than FRAG.
  (bela Feb 25 2004)

- Added offset and length fields to Message, plus a new constructor and a new setBuffer() method. This allows for
  multiple messages to share a common byte buffer (avoiding unnecessary copying). The semantics of Message.getBuffer()
  have changed: previously it returned a reference to the buffer, now it returns either a reference (offset/length
  are not used) or a copy (offset/length are used). If you want the previous semantics, use Message.getRawBuffer().
  (bela Feb 25 2004)

- Changes to log4j.Trace: we now use the fully qualified classname and methodname of the caller, e.g.
  "org.jgroups.protocols.PING.down"
  (bela Feb 24 2004)

- RequestCorrelator: catching exceptions caused by non-serializable return value, return them
  as exceptions. This fixes bug# 901274: group requests would *not* return (not even a null value) if
  the invoked method threw an exception, causing callers to hang for a timeout. Now the exception is returned.
  (bela Feb 20 2004)

- Added NIO version of ConnectionTable1_4; works with JDK 1.4 or later. 
  TCP1_4.java protocol uses ConnectionTable1_4 and tcp1_4.xml config file for NIO 
  based TCP stack.
  (akbollu Fed 18 2004)

- Added send_buf_size and recv_buf_size to TCP
  (bela Feb 11 2004)

- Fixed problem in ConnectionTable/TCP: when a message was sent to a crashed member,
  the connection establishment would take a long time. Now we can skip messages to
  suspected members
  (bela Feb 9 2004)

- Added tcpgossip.xml config file
  (bela Jan 21 2004)

- Fixed bug in IpAddress: access to address cache is now synchronized (caused ConcurrentAccess ex).
  (bela Jan 21 2004)

- ConnectionTable: new sockets now use the bind_addr (used to ignore it)
  (bela Jan 18 2004)

- Added network optimization to PING and TCPPING for FIND_INITIAL_MBRS event when initial hosts is used,
  rather than send to all, skip send for initial members already in the view
  (thomas sorgie, Jan 17, 2004)

- Changed default port_range from 5 to 1, auto port escalation is a nice feature, but it is wasteful and 
  should be off by default
  (thomas sorgie, Jan 17, 2004)

- Removed unused checkForResult() from util.Promise which has misleading results when result is null, replaced
  with hasResult() which returns a boolean indicating whether a result if available
  (thomas sorgie, Jan 17, 2004)

- Removed exceptions from getObject()/setObject() again, replaced with
  IllegalArgumentException
  (bela Jan 16 2004)

- Added exception(s) to Message(Address, Address, Serializable), getObject() and
  setObject()
  (bela Jan 15 2004)

- Removed direct_blocking from FC; this is now default
  (bela Jan 8 2004)

- Fixed failed merging when all up/down threads are disabled (default-minimalthreads.xml)
  (bela Jan 8 2004)

- Removed send_sock from UDP and streamlined sending. Now there is only 1 socket for sending unicast and multicast
  messages and for receiving unicast messages, and 1 socket for receiving multicast messages
  (bela Jan 6 2004)

- Added use_outgoing_packet_handler to UDP. If enabled, all outgoing packets will be handled by a separate thread.
  This results in great perf gains for multicasts sent to self
  (bela Jan 2 2004)

- Added min_size property to SIZE
  (bela Dec 26 2003)

- Replaced HostInfo with IpAddress in PING/TCPPING
  (bela Dec 22 2003)

- Added get_interfaces script to 'bin' directory: discovery of all network interfaces on a box.
  Needs 1.4 to work
  (bela Dec 18 2003)

- JChannel: fixed handling of additional_data: additional_data was not retained across shuns/reconnects,
  so the additional_data would not be available. Run AddDataTest for unit testing.
  (bela Dec 15 2003)

- Added scripts for pinging all members given an mcast address and port (probe), and
  for determining the fragmentation size (frag_size).
  (bela Dec 12 2003)

- Fixed bug #854887. When AUTOCONF determines the correct
  fragmentation size (e.g. 65507 on my WinXP laptop),
  fragments are cut down to 65507 bytes max.
  However, those fragments are regular messages, so we add
  some headers, plus serialization adds its own stuff, so we
  end up with more than  65507 bytes, causing UDP to fail
  (AUTOCONF measured exactly how many bytes could be sent over
  the UDP datagram socket). Solution: add a buffer to the frag size determined
  by AUTOCONF (e.g. 1000 bytes). This will be subtracted from the computed
  frag size, so we have enough space. The buffer is always more or less
  constant, as headers or serialization is constant too.
  (bela Dec 12 2003)

- Added initial_hosts support for PING (copied from TCPPING)
  (bela Dec 11 2003)

- Scheduler can now handle incoming requests concurrently (if concurrent_processing is true). By default,
  this is false: setting this to true can destroy the ordering properties provided by a protocol stack, e.g.
  in the case of total or causal order. FIFO (default) should be fine, but please know what you are doing !
  (bela Dec 10 2003) 

- Modified SMACK protcol: handling of CONNECT/CONNECT_OK and DISCONNECT/DISCONNECT_OK was incorrect. Worked only
  on UDP. Now works on TUNNEL as well.
  Also added a new protocol config smack_tunnel.xml to conf.
  (bela Dec 10 2003)

- ProtocolStack.startStack() and stopStack() now use START/START_OK and STOP/STOP_OK pairs (again). Protocol will
  handle these events internally. This prevents subtle timing problems, e.g. a CONFIG event being passed by
  start() invocations on the protocols.
  Fixes bug #854855
  (bela Dec 5 2003)

- Fixed bug in pbcast.GMS which incorrectly generated view when many members left at exactly the same time.
  Bug was reproduced in ConnectStressTest. We may have to revisit huge concurrent JOINs later (30 work fine in
  the test now)
  (bela Nov 20 2003)

- Added ConnectStressTest unit test
  (bela Nov 20 2003)

- pbcast.GMS and shunning: only shun if this member was previously part of the group. avoids problem where multiple
  members (e.g. X,Y,Z) join {A,B} concurrently, X is joined first, and Y and Z get view {A,B,X},
  which would cause Y and Z to be shunned as they are not part of the membership
  (bela Nov 20 2003)

- Added BoundedList to org.jgroups.util
  (bela Nov 20 2003)

- Fixed NullPointerException in CoordGmsImpl (252) caused by null Digest
  (bela Nov 20 2003)

- Fixed JChannel._getState(): when the state transfer protocol is just underneath the Channel, and
  is configured to use the caller's thread, then we always run into the state transfer timeout for first
  member.
  (bela Nov 13 2003)

- GossipRouter can be managed as MBean under the JBoss JMX server.
  To build a dist/jgroups-router.sar service archive, run build.sh jboss-service.
  The router deploys as 'jgroups:service=GossipRouter' and it can be further
  managed from http://<your_server>:8080/jmx-console
  (ovidiuf Oct 29 2003)

- Added compression protocol (COMPRESS) and example stack (compress.xml)
  (bela Oct 17 2003)

- Added GossipRouter. It is based on the Router code and it is able to answer
  Gossip requests too. Can completely replace Router/GossipClient. It is
  backward compatible, clients shouldn't be aware of change.
  (ovidiuf Oct 15 2003)



Version 2.2
-----------

- JChannel.close(): queue will not be reset until re-opened
  (bela Sept 25 2003)

- Added flushEvents() to ProtocolStack
  (bela Sept 24 2003)

- New JUnit test case AddDataTest to test setAdditionalData() in IpAddress
  (bela Sept 22 2003)

- Added remove_mutex to Queue: waitUntilEmpty() waits on the remove mutex, which is notified
  by remove(), remove(long timeout), removeElement(Object el) and close() and reset()
  (bela Sept 22 2003)

- Added resource handling, e.g. instead of full URLs a simple XML file name can be passed.
  getResourceAsStream will be used on the thread's classloader to find the resource.
  Example: java org.jgroups.demos.Draw -props default.xml (default.xml has to be in the classpath)
  (bela Sept 11 2003)

- JavaGroups was renamed to JGroups. Package is now org.jgroups. The
  final 2.1.1 version was tagged with the JG_FINAL_SEPT_8_2003 tag.
  (bela Sept 8 2003)


Version 2.1.1
-------------

- Added MERGEFAST protocol: really simple implementation of a merge protocol which allows for faster
  merging. Coordinators attach info saying "I'm the coord", when other coords (this means we have a
  partition) see it, a merge protocol is initiated right away
  (bela Aug 25 2003)

- Added additional_info handling for TCP (already present for UDP,
  added in 2.0.6)
  (bela Aug 4 2003)

- Applied patches sent by Alfonso to replicated building blocks (only
  send mcast when more than 1 member, else apply change directly
  (bela Aug 1 2003)

- Added adapttcp TCP-based tests
  (bela July 25 2003)

- Added properties override to JChannel: use -Dforce.properties=file:/myprops.xml to force a given
  protocol stack spec to be used
  (bela July 24 2003)

- Eliminated unneeded message copying in NakReceiverWindow.remove() when inserting delivered
  message into delivered_msgs
  (bela July 23 2003)

- Fixed bug #775120 (channel not connected on first view)
  (bela July 21 2003)

- Applied patch (submitted by Darren Hobbs) for incorrect voting to
  ClientGmsImpl (both pbcast and regular branch)
  (bela July 15 2003)

- Added performance tests created by Milan Prica (prica@deei.units.it) under
  org.jgroups.tests.adapt
  (bela July 12 2003)

- Created
  (bela July 12 2003)




Version 2.1.0
-------------

- Created 2.1 distribution (CVS tag: JG_2_1)
  (bela July 5 2003)

- Added timeout latency value to FD, fixes annoying (but not incorrect) "missing first heartbeat"
  problem
  (bela on behalf of Bas Gooren June 27 2003)

- Fixed bind_port problem in UDP
  (bela on behalf of Bas Gooren June 27 2003)

- Fixed deadlock (bug is #761804). Changes in RequestCorrelator.
  (bela June 27 2003)

- Change to pbcast.STABLE: max_bytes property allows for more aggressive message garbage collection.
  It keeps track of the number of bytes received from everyone. When max_bytes is exceeded, a STABLE
  message is multicast. This can be used in *addition* to, or instead of desired_avg_gossip.
  (bela June 26 2003)

- Moved pbcast.STABLE on top of UNICAST/NAKACK. The reason is that STABLE should be reliable (message
  retransmission). STABLE now assumes NAKACK is *below* rather than above it. This required changes to
  all default protocol spec XML files, plus hard-coded properties in demo programs.
  (bela June 26 2003)

- Created
  (bela June 26 2003)


Version 2.0.8
-------------

- First version of FC (flow control) protocol based on credit system. PerfTest works (no OutOfMemory exceptions),
  but it needs to be faster
  (bela June 25 2003)

- On JChannel.open() a new ProtocolStack is created, previously the existing one was reused. This
  caused multiple timers to be created on shun-reconnect
  (bela June 12 2003)

- CloserThread would not terminate in Draw demo. Fixed by running mainLoop() in separate thread
  (bela June 12 2003)

- On shun-reconnect, the ProtocolStack's timer was not restarted (start() was not called), therefore
  FD would not restart its heartbeat. This fixes bug #753327.
  (bela June 12 2003)

- Added new building block: DistributedQueue. Added unit and stress tests as well.
  (romuald June 4 2003)

- Added diagnostics interface to query all members in a subnet using the same IP multicast address and
  port (UDP). Use org.jgroups.tests.Probe to execute
  (bela June 3 2003)

- Fixed CONNECT_OK bug in TOTAL_TOKEN
  (bela June 2 2003)

- Added PerfTest
  (bela May 27 2003)

- FD: fixed problem when correct member was suspected, but didn't
  receive VERIFY_SUSPECT ack. Caused that member not to be pinged
  anymore. If the member crashed later on, the crash would not be
  detected.
  (bela May 16 2003)

- JChannel: fixed bug in shun-reconnect sequence: channel_name was nulled,
  therefore reconnect created a unicast channel. Now CloserThread
  remembers the old channel_name and uses it to reconnect.
  (bela May 15 2003)

- Fixed constructors of ChannelException so that ChannelException.getMessage()
  returns non-null value
  (bela April 17 2003)

- Added exceptions to 2 of the 4 constructors of DistributedHashtable
  (bela April 17 2003)

- Added up_thread_prio and down_thread_prio to Protocol. This allows users to set
  thread priority for each thread (up,down) in a protocol.
  (bela April 15 2003)

- Added versioning to TCP. In addition to the cookie, we now also send the version. If the
  cookie doesn't match we discard the message. If the versions don't match, we log a
  warning message
  (bela April 6 2003)

- Added versioning to UDP. Message with different versions will be flagged (warning), but
  not discarded. This change changes the wire format of message, so that previous versions
  will not work with this version
  (bela April 4 2003)


Version 2.0.7
-------------

- Added serialVersionUID to MethodCall. Reason is that jikes and javac did not generate
  the same serialVersionUID, causing problems between JGroups instances not compiled
  with the same compiler. Currently MethodCall is the only instance where this problem
  occurred. However, I didn't do exhaustive tests on this, there are probably more
  instances. Since most users use the same codebase, this should not be a problem though.
  (bela March 30 2003)

- Added way of defining method via (a) class types (Class[] array) or
  (b) signature (String[])
- Modified RpcDispatcher and RpcProtocol to provide 2 new methods for each
- Added RpcDispatcherSpeedTest
  (bela March 30 2003)

- Removed mcast_bind_addr again: I had thought 0.0.0.0 listens on *all* available
  interfaces, but this is not true. The semantics are that the ANY address (0.0.0.0)
  means that the first available interface is bound to.
  We could have multiple mcast sockets, each on a different interface, joining the
  same group though; this is possible.
  (bela March 28 2003)

- Added mcast_bind_addr parameter to UDP, by default multicast socket will
  now listen on all interfaces (0.0.0.0 'any' address)
- Send socket in UDP now doesn't take a bind_addr argument any longer;
  by default the IP code will dynamically choose the interface based on the
  destination address
  (bela March 27 2003)

- Fixed bug in connect() - disconnect() - connect() sequence. Only
  occurred when reconnecting to a different channel name. Fixed by
  resetting all channel state (JChanel.init()).
  (bela March 21 2003)

- Modified code for TCP/UDP: when a channel name is null, an outgoing
  message will not have a header.
  (bela March 20 2003)

- Fixed bug which caused join() to fail (null address) on
  Channel.close(), Channel.open(), Channel.connect() sequence.
  (bela March 18 2003)

- Added unicast capability for channels. The connect() method can now have a
  null channel name, which will *not* invoke the JOIN protocol.
- Added org.jgroups.tests.UnicastChannelTest
  (bela March 16 2003)

- Uncommented code in UDP.createSockets() which caused binding to all
  interfaces (bind_addr == null). This caused incorrect addresses
  (e.g. 0.0.0.0:1234), which were not identical across machines.
  (bela March 13 2003)

- Added patch by Roland Kurman. If a protocol stack has only 1
  protocol, then the JChannel.connect() method will fail as the
  connect_mutex will be notified before connect_mutex.wait(). Added
  some vars to check for this case. Dito for disconnect().
  (bela March 13 2003)

- Added BSH protocol. Allows processing of Java code sent from a remote member.
  Executes any Java code and sends back the result.
  (bela March 8 2003)

- Added beanshell (www.beanshell.org) JAR file
  (bela March 8 2003)

- Added optional ENCRYPT protocol (works with JDK1.4) using a 3rd
  party provider. Jar and protocol file with ".xml" being added
  on 03/06/2003.
  (whizkid_bay Mandar Shinde)

- Removed synchronized from RequestCorrelator.removeEntry(). Not
  needed, and caused bug #690606
  (bela Feb 28 2003)

- Removed synchronized from GroupRequest.execute() (not needed as we
  synchronized further down the code anyway)
  (bela Feb 28 2003)

- Replaced print statements with Trace calls in some of the WAN support
  classes. Modified log4j Trace wrapper to report also the module the log
  was generated for.
  (ovidiuf Feb 19 2003)

- Fixed a bug in TUNNEL that caused the clients and the Router to
  deadlock under high-volume traffic.
  (ovidiuf Feb 05 2003)

- A custom name/path for the magic number file can be specified using
  the property "org.jgroups.conf.magicNumberFile". Default is
  "jg-magic-map.xml".
  (ovidiuf Jan 30 2003)

- Added contentsSet() and contentsCleared() callback to
  DistributedHashtable Notification interface
  (bela Jan 30 2003)

- pbcast.NAKACK will not remove header when handling retransmitted message.
  Otherwise further retransmit requests would have failed
  (bela Jan 29 2003)

- Removed unused casts
  (bela Jan 28 2003)







Version 2.0.6
-------------

- Added FLOW_CONTROL protocol to throttle sender when receivers are
  lagging behind.
  (Ananda Jan 20 2003)

- Added ChannelClosedException and ChannelNotConnectedException to
  Channel.getState() and Channel.getStates()
  (bela Jan 20 2003)

- Various fixes related to the connect-disconnect-connect sequence:
  TUNNEL sends a null local address up the stack when disconnected,
  GossipClient provides a new timer and also cleans up the groups map
  when stopped, pbcast.NACKACK cleans up the NakReceiverWindows when
  disconnected and resets the seqno.
  (ovidiuf Jan 16 2003)

- Added capability to stuff additional data into an IpAddress. Use the CONFIG event to
  do this *after* channel creation but *before* connecting.
  IpAddress.getAdditionalData()/setAdditionalData() can be used to manage that data.
  This is useful e.g. when we want logical addresses rather than IpAddresses
  (bela Jan 14 2003)

- Updated concurrent.jar to version 1.3.2
  (bela Jan 14 2003)

- UDP: when multicasting a message, if loopback=true, we loopback a
  copy directly up the stack (but still multicast it). Once we then
  receive our own multicast, we discard it. This is supposed to solve
  some problems with Windows media sensing and disabling of interfaces
  (bela Jan 9 2003)

- TCPPING: automatically add self to initial_hosts lists if omitted
  (bela Dec 26 2002)

- Fixed bug in UNICAST/FRAG (causing merge protocol to fail
  sometimes): whenever we initiate a merge, we have to send a unicast
  message to a member not currently in the group. If we receive a view
  or get a retransmit() before we get the new view, the members will
  remove each other's connection table entry, and thus unicast
  messages to the other side will fail.
  We now use Util.determineLeftMembers() to correctly determine the
  left members between 2 views, and remove only those.
  (bela Dec 23 2002)

- Channel.connect() will now throw an exception if the protocol stack
  couldn't be initialized correctly (e.g. local address is null). Will
  wait for LOCAL_ADDR_TIMEOUT ms until local_addr is non-null (can be
  overridden by setting system property "local_addr.timeout").
  (bela Dec 23 2002)

- Implemented RpcDispatcher.callRemoteMethods() correctly: destination
  list is now correctly observed (used to be ignored before)
  (bela Dec 15 2002)

- Added persistence manager (org.jgroups.persistence)
  (whizkid_bay Dec 11 2002)

- Replaced START/START_OK events with start()
  Replaced STOP/STOP_OK and CLEANUP/CLEANUP_OK events with stop()
  (see description of Protocol.java for details)
  (bela Dec 10 2002)





Version 2.0.5
-------------

- Added Proxy1_4 to org.jgroups.util
  (bela Dec 5 2002)

- Added concurrent.jar to lib directory
  (bela Dec 4 2002)

- Made (almost) all threads daemon threads
  (bela Dec 2 2002)

- Added first version of TransactionalHashtable (no functionality yet)
  (bela Nov 24 2002)

- Added ReplicationManager, ReplicationReceiver and Xid to
  org.jgroups.blocks. This is the building block for transactional
  cache
  (bela Nov 20 2002)

- Changed signature of state transfer in Channel (returnState()) and
  MessageListener (getState(), setState()) from Object to
  byte[]. Reason: classloader issues, some clients need to do the
  serialization themselves (e.g. in different classloaders)
  (bela Nov 15 2002)




Version 2.0.4
-------------


- Fixed problem with client joining and immediately calling
  getState(): now pbcast.GMS immediately sends a TMP_VIEW so correct
  digest will be returned to client. This only happened when client's
  GET_STATE request reached coordinator *before* coord received its
  own VIEW_CHANGE multicast
  (bela Oct 28 2002)

- DistributedHashtable: moved MethodCall creation from remote method
  invocation (once/call !) to instance level (once/instance)
  (bela Oct 17 2002)

- Made TOTAL.Header public (needed by externalization)
  (bela Oct 15 2002)

- Made serialization of UdpHeader more efficient
  (bela Oct 11 2002)

- Moved connection reaper from Connection to ConnectionTable
  (bela Oct 10 2002)

- Added log4j-1.2.6.jar
  (bela Sept 24 2002)

- Version 2.0.4 created
  (bela Sept 21 2002)




Version 2.0.3
-------------

- Version 2.0.3 released
  (bela Sept 21 2002)

- Fixed bug in Queue which caused dangling tail on removeElement()
  (bela Sept 20 2002)

- Added adapter from Trace to log4j ($JG_ROOT/log4j)
  (bela Sept 17 2002)

- Fixed problem with hangs in RpcDispatcher.callRemoteMethods(): seems
  that Scheduler's thread pool of 10 was maxed out, causing hangs to
  to missing responses. Increased thread pool to 128.
  (bela Sept 16 2002)

- Added connection reaping in ConnectionTable/TCP. Use of properties
  reaper_interval and conn_expire_time determines the reap times.
  (bela Sept 16 2002)

- Removed SUSPECT events from TCP when ConnectionTable closes
  connection. Added FD to tcp.xml instead
  (bela Sept 15 2002)

- Made MessageDispatcher ride on top of PullPushAdapter in addition to
  Channel
  (bela Sept 13 2002)

- Version 2.0.3 created Aug 27 2002
  (bela Aug 27 2002)

- Upgraded Xerces jars from 2.0.0 to 2.1.0
  (bela Aug 31 2002)



Version 2.0.2
-------------

- Version 2.0.2 released Aug 26 2002
  (bela Aug 26 2002)

- Fixed bug in AckMcastSenderWindow/NAKACK: whenever we did a
  rebroadcastMessages(), and one of the members crashed in the
  meantime, the call waited forever. This was especially the case when
  we received a SUSPECT *before* the waitUntilAcksReceived() was
  called. Fix: we maintain a bounded list of suspects and - when there
  is a retransmit request to a member who is in that list - we remove
  that member from the retransmission table, causing
  waitUntilAcksReceived() to return. Additionally, one could set
  rebroadcast_timeout, so that waitUntilAcksReceived() always returns
  after some bounded time
  (bela Aug 22 2002)

- Fixed bug in SMACK (retransmission to dead member did not stop) and
  reduced number of JGroups-related threads from 9 to 4 in
  smack.xml.
  (bela Aug 22 2002)

- Fixed ClassCastException bug in PERF
  (bela Aug 22 2002)

- Added SMACK, FD_SIMPLE and smack.xml. SMACK (= Simple Multicast ACK
  protocol) allows for membership-less reliable (positive)
  acknowledgment-based multicasting
  (bela Aug 21 2002)

- Added VotingAdapter, TwoPhaseVotingAdapter as simple distributed
  agreement building blocks; LockManager interface and DistributedLockManager
  that uses TwoPhaseVotingAdapter to acquire and release locks.
  (rrokytskyy Aug 18 2002)

- Modified GroupRequest to use Transport instead of
  RequestCorrelator. Added test program GroupRequestPull
  (bela Aug 16 2002)

- Fixed bug in FD: num_tries was incremented twice in the same loop
  (bela Aug 15 2002)

- Fixed UDP.sendDummyPacket()
  (bela Aug 15 2002)

- Added capability to register multiple MessageListeners with
  PullPushAdapter
  (bela Aug 13 2002)

- Added org.jgroups.tests.McastDiscovery1_4
  (bela Aug 1 2002)

- Added disable_initial_coord property to both GMS and pbcast.GMS:
  when set to true, new members will not become coordinators on empty
  initial membership, but rather retry fetching the membership. Is set
  to false by default
  (bela Aug 1 2002)




Version 2.0.1
-------------

- Added unit tests to build.xml and fixed all unit test cases
  ( bela July 19 2002)

- Fixed bug in FD which caused no SHUN message to be sent
  (bela June 25)

- AckSenderWindow now is able to send messages itself, used by sliding
  window protocol (if enabled)
  (bela June 4 2002)

- Removed Trace from TimeScheduler (caused significant delays in
  task execution times)
  (bela June 3 2002)

- Added sliding window to AckSenderWindow (used in UNICAST)
  (bela June 1 2002)

- Replaced retransmission thread in AckSenderWindow with Retransmitter
  (also used by NakReceiverWindow)
  (bela May 29 2002)

- AckReceiverWindow and AckSenderWindow: replaced TreeSets with
  HasMaps. More efficient insertion of and access to elements
  (bela May 28 2002)

- New version of UnicastTest: measures performance of sending unicast
  messages from a sender to a receiver
  (bela May 26 2002)

- References of messages are now stored instead of copies (see
  protocols/DESIGN for details)
  (bela May 26 2002)

- Added AUTOCONF protocol: automatically configure network buffer
  and fragmentation sizes
  (bela May 14 2002)

- Added handling of null values to Marshaller
  (bela May 3 2002)

- Added bare-bones.xml for protocol stack consisting only of UDP and UNICAST
  (bela May 2 2002)

- Added use_packet_handler property to UDP
  (bela April 26 2002)

- Converted headers from Stack to HashMap
  (bela March 31 2002)

- Modifications to xmit algorithm in pbcast.NAKACK: large messages are
  now avoided
  (bela March 20 2002)

- Added JMS protocol and jms.jar (required)
  (rrokytskyy March 20 2002)

- Removed buggy loopback code from UNICAST and moved (correct) code to
  UDP. If 'loopback' is true in UDP, messages sent to self are not put
  on the network, but redirected up the stack immediately.
  (bela Feb 27 2002)

- Added new version of JUnit JAR file. Replaced all occurrences of
  assert() with assertTrue(). 'assert' is a keyword in JDK 1.4 and
  cannot be used any longer.
  (bela Feb 13 2001)


Version 2.0
-----------

- Added ReplicatedTree and ReplicatedTreeDemo
  (bela Feb 10 2002)

- Added SpeedTest
  (bela Feb 2002)

- Modified UDP to allow connect() followed by disconnect().
  (bela Dec 23 2001)

- Added BLOCK_SEND and UNBLOCK_SEND events: JChannel.send() will block
  after BLOCK_SEND and unblock after UNBLOCK_SEND event. Used by flow
  control protocols
  (bela Dec 18 2001)

- Fixed bug in Scheduler which caused the 491327 bug (hang)
  (bela Dec 14 2001)

- Fixed bug in pbcast.NAKACK which caused large state transfers to
  fail
  (bela Dec 13 2001)

- Checked initial version of JGroups 2.0 into the CVS
  (bela Dec 12 2001)

- Removed Timer and TimerTask (supported from JDK 1.3)
  (bela Dec 7 2001)

- Moved to new directory structure
- Adoption of SUN naming conventions (e.g. lowercase package names,
  method names starting with lowercase letter etc)
  (bela Dec 4 2001)



Version 1.0.1
-------------

- Added CAUSAL protocol
  (vlada Nov 16 2001)

- Added DeadlockTest
  (igeorg Nov 15 2001)





Version 1.0
-----------

- Updated some of the demos
  (bela Nov 1 2001)

- Fixed bug in pbcast.NAKACK: seqnos are not reset to 0 on
  SetDigest. This caused a sender to start at 0 after a SetDigest(),
  e.g. sender was at 10 and got a digest. Its next 10 messages would
  be discarded (already seen)
  (bela Nov 1 2001)

- FD_SOCK: fixed bug where lost SUSPECT can screw up membership. Now
  SUSPECT messages are transmitted reliably (retransmission if
  lost). Also removed Thread.interrupt() on thread that reads from
  InputStream (did not work correctly on some platforms, e.g. Windows
  and Linux JDK 1.3.1)
  (bela Oct 30 2001)

- Modified Draw demo: background is now correctly repainted (using
  double-buffering)
  (bela Oct 30 2001)

- Added magic cookie for connection sends/receives in
  ConnectionTable. Telnetting to the same port as the one the CT
  listens on will not have an effect, telnet will be closed by CT
  (bela Oct 26 2001)

- Removed potential deadlock between synchronized Send() and Receive()
  in ConnectionTable
  (bela Oct 26 2001)

- Fixed bug in ConnectionTable. Caused connection termination by
  Windows peers not to be detected.
  (bela Oct 26 2001)

- Preliminary version of merge protocol to
  pbcast.GMS/pbcast.CoordGmsImpl. Used with MERGE2 protocol.
  (bela Oct 25 2001)

- Fixed properties for Draw demo (see todo.lst)
  (bela Oct 24 2001)

- Added -no_channel flag to Draw demo. If set, Draw doesn't use a
  channel. Can be used to see whether the drawing works, independent
  of JGroups.
  (bela Oct 22 2001)

- Replaced {ViewId,Vector} in pbcast.GMS with View
  (bela Oct 22 2001)

- Ported Draw to Swing. Still has a redraw problem, because we don't
  call super.paintComponent() to preserve points. Possible solution:
  keep all pixels in an array, update the array on reception of
  DrawCommand and just draw the array in paintComponent()
  (bela Oct 17 2001)

- Added MERGE2 protocol. To be used in conjunction with pbcast/GMS
  (bela Oct 17 2001)

- Fixed bug in JGroups.JavaStack.Protocols.pbcast.NakAckHeader
  which caused externalization to be incorrect
  (bela Oct 12 2001)

- Fixed bug in FD_SOCK under Linux JDK 1.3.1 (used to work under JDK
  1.2.2): pinger thread could not be interrupted using
  Thread.interrupt(). Now (only if Linux) the ping socker is closed to
  interrupt the thread. Test whether Thread.interrupt() works to
  interrupt thread during InputStream.read() is
  JGroups.Tests.InterruptTest.
  Addition: this bug is known by SUN (4344135) and currently occurs
  only in the Linux JDKs 1.3.0 - 1.3.1. Should be fixed soon. Once
  this is done, we can revert to interrupt() only. This is better
  because it doesn't cause a SUSPECT event to be generated from
  closing the peer socket. This event will be discarded by
  VERIFY_SUSPECT, but it is still additional work. Also, if
  VERIFY_SUSPECT is missing we are in trouble.
  (bela Oct 10 2001)

- Removed is_linux from UDP.java
  (bela Oct 10 2001)

- Added GossipServer, GossipClient. There used to be a GossipServer up
  to version 0.9.4, but was subsequently merged with JRouter into
  Router. The reason for putting it back is that we just want
  gossiping functionality, not gossiping and routing functionality.
  (bela Oct 4 2001)

- Modified Common.Trace. Added a separate STDOUT/STDERR object for
  each level. Previously we had one singleton STDOUT and STDERR
  object. This caused multiple traces with different levels to
  overwrite each other's levels, e.g.
     default_output=WARN STDOUT
     trace0=Foo        DEBUG STDOUT
  would cause either WARN or DEBUG to be printed, but not both.
  (bela Sept 27 2001)

- Removed MessageProtocol.MessageProtocolHeader. Demux for msg/rpc traffic is
  done now whether RequestCorrelator.Header is present in the msg.
  (igeorg Aug 10 2001)

- Modified pbcast.STABLE. Now stable task terminates after certain
  idle time (see max_gossip_runs)
  (bela Aug 3 2001)

- Added SIZE layer, Measures the size of a message and prints it.
  (bela June 15 2001)

- Added Tests/Ping.java. Discovers initial members on any group
  (bela June 12 2001)

- Removed initial_mbrs_timeout from GMS. Now, we wait until
  FIND_INITIAL_MBRS returns (needs PING)
  (bela June 12 2001)

- Added FD_SOCK protocol
  (bela May 28 2001)

- Modified ConnectionTable to use 1 TCP connection instead of 2
  between peers
  (bela May 14 2001)

- Modified FD to use TimeScheduler instead of own thread
  (bela May 11 2001)

- Integrated changes made by igeorg to AckMcastSenderWindow and
  NakReceiverWindow. Modified pbcast.NAKACK to provide TimeScheduler
  to *Window classes
  (bela/igeorg May 9 2001)

- Added FLOWCONTROL layer
  (i-scream May 9 2001)

- Removed ProtocolStack.Timer (use ProtocolStack.TimeScheduler)
  (bela May 8 2001)

- Removed SortedList: replaced with java.util.TreeSet
  (affected classes: AckSenderWindow and AckReceiverWindow)
  (bela May 8 2001)



Version 0.9.9.9.1
-----------------

- Fixed severe bug in NAKACK
  (bela May 11 2001)


Version 0.9.9.9
---------------

- Changed if(trace) to if(Trace.trace)
  (bela May 4 2001)

- Added setting of receive and send buffer sizes for sockets in
  UDP. This has an effect on FRAG (see DESIGN for explanation)
  (bela April 24 2001)

- Made Address and Header Externalizable (changes to all subclasses of Header)
  (bela April 17 2001)

- Moved TOTAL.java --> TOTAL_OLD.java and TOTAL_JOHN.java --> TOTAL.java
- Added ./Tests/FragTest: uses ProtocolTester to test FRAG
  (bela April 13 2001)

- Added bind_addr and bind_port properties to UDP
  (bela April 6 2001)

- Modified NotificationBus: uses ucast to coordinator to fetch state
  instead of mcasting and then processing responses from each member
  (bela April 5 2001)

- Moved NotificationInfo --> NotificationBus.Info
  (bela April 5 2001)

- Reduced traffic generated by FD_PID. A new member used to mcast its
  query for PIDs and every member replied with its add:pid. Now, a new
  member asks the coordinator for the cache, updates its own cache and
  then mcasts its addr:pid, so other members can update their caches.
  (bela April 5 2001)

- Fixed ClientGmsImpl.DetermineCoord(): now a majority is needed to
  determine the coordinator from the responses. This would join a new
  member to the majority group in case of a split group (e.g. caused
  by a network partition)
  (bela April 4 2001)

- Added fix for "Last Message Dropped" bug in pbcast/STABLE and
  pbcast/NAKACK (see pbcast/DESIGN for details)
  (bela April 3 2001)

- Added Tests/DigestTest
  (bela April 3 2001)

- Added SetTrace() to Protocol. Allows a developer to dynamically turn
  tracing on/off in a running protocol stack
  (bela March 30 2001)

- Removed Util.ShortName(). IpAddress now by default prints short
  form. More efficient and avoids a lot of string creation.
  (bela March 29 2001)

- Modified Protocol.java: no the up_thread=<boolean> and
  down_thread=<boolean> can turn the up/down thread handler on/off
  (bela March 27 2001)

- Added pbcast/STABLE.java. Slight modification of regular STABLE
  protocol, makes it more efficient for local groups
  (bela March 26 2001)

- Added JavaStack/ProtocolTester.java
  (bela March 23 2001)

- Added pbcast/NAKACK protocol. This is similar to the regular NAKACK,
  but doesn't include FLUSH with resetting of sequence numbers. Upon
  joining, a new member will get the highest seqnos of all members
  (from the coordinator) and set its NakReceiverWindows accordingly.
  (bela March 23 2001)

- Modified pbcast GMS protocols: removed RpcProtocol. All GMS
  protocols now extend Protocol instead of RpcProtocol. This should
  make parallel startups of members faster
  (bela March 20 2001)

- Added ANT based build system
  (fhanik March 20 2001)

- Modified FD_PID (fixed bug in membership adjustment when most
  members die)
  (bela March 15 2001)

- Added Trace.init(): read tracing properties from file
  (bela March 9 2001)

- Added FD_PID: uses process IDs to monitor for process
  failure. For purely local groups.





Version 0.9.9.8
---------------

- Added FD_PID protocol. Failure detection based on process ids. Works
  only for local groups (all members are on the same host), and only
  on /proc based systems (e.g. Linux, Solaris)
  (bela March 2 2001)

- Fixed bug in PBCAST where singleton members did not garbage-collect
  their messages
  (bela Feb 15 2001)

- Added bounded buffer to PBCAST: now PBCAST-related messages (like
  gossips, etc (not multicast msgs !)) will be discarded if buffer is
  full. This is not a problem since gossips in later rounds can make
  up for the loss of previous gossips.

- Added simple FD protocol in ./pbcast. Requires PBCAST
  (bela Feb 14 2001)

- Fixed problems where multiple members (including coordinator) crash
  simultaneously (fixed in ./Protocols/ParticipantGmsImpl.java and
  ./Protocols/pbcast/ParticipantGmsImpl.java)
- Added probabilistic failure detection protocol (FD_PROB.java)
- Added VERIFY_SUSPECT protocol. Verifies SUSPECT messages generated
  by the FD layer before passing it on to the GMS layer. Does this by
  attempting to contact suspected member. If attempt is successful,
  event is discarded, otherwise (a timeout occurs), event is passed up
  the stack.
  (bela Feb 13 2001)

- Added new Header class: all headers have to extend this class and
  implement Size(). Replaced all occurrences of AddHeader(),
  PeekHeader() and RemoveHeader().
- Added additional Send() method to Channel, JChannel and EnsChannel
- Changed addresses: now we have an Address interface and the old
  JGroups.JavaStack.Address is now IpAddress
  (bela Feb 9 2001)

- Added Trace module in ./Common
  (jmenard Feb 9 2001)

- Added unit testing using JInit (./Tests)
  (bela Feb 8 2001)

- Added FD_SHUN protocol. Failure detection with shunning of members
  that are pinging but not in group
  (bela Feb 8 2001)

- Fixed bug which prevented UNICAST to work over TCP
  (bela Feb 7 2001)

- Added merging capability to GMS (not yet to pbcast.GMS)
- Added ViewID control to FD
- Correct a bug on STABLE
- GMS now reverts to Client on leave
- Removed interface JGroups.Comparable, substituted with java.lang.Comparable
  (i-scream Feb 6 2001)






Version 0.9.9.7
---------------

- TOTAL protocol added (TOTAL_JOHN)
  (John Georgiadis Feb 7 2001)

- Changes for partition-aware stack. Added simple merging protocol
  (Gianluca Collot Feb 7 2001)

- Suspected members now leave a group voluntarily. Re-join may be
  automated by setting option Channel.AUTO_RECONNECT and possibly
  AUTO_GETSTATE.

- Removed Header, new headers are just serializable objects that will
  be attached to a Message. This does not require code changes, but
  existing code using Header must be rewritten (tiny change). If a
  header implements interface Sizeable, FRAG will be able to figure
  out exactly how many bytes a message is (needed to decide whether to
  fragment or not). If Sizeable is not supported, a (preconfigured)
  estimated size will be taken.





Version 0.9.9.6
---------------

- Modified UDP and TCP to give performance numbers for PERF
  (Bela Feb 5 2001)

- Added PERF protocol (including PerfHeader): measure the performance
  of messages separately fro each protocol layer. Just add PERF on top
  of an existing stack (topmost protocol) and set trace=true.
- Fixed bugs in NakReceiverWindow (caused PERF to lose some of the
  performance numbers)

- Added LOOPBACK protocol. Can be used as bottom protocol. Simply
  swaps sender and receiver address and sends message back up the
  stack.

- Implemented exit and reconnect mechanism (pbcast/GMS, FD and
  JChannel). Modified FD to shun members from whom we receive a ping,
  but which are not members of the group anymore. This allows e.g. to
  CTRL-Z a member and later, after member was excluded, do a 'fg'. The
  member will reconnect to the group
  (bela Jan 31 2001)

- Added Open() to Channel: allows to reuse the same channel (re-connection)
  (bela Jan 30 2000)

- Renamed ConnectionPool to ConnectionTable

- TCP: don't send messages with dst == local_addr, but redirect to
  local queue

- NotificationBus: accept local messages





Version 0.9.9.5
---------------

- Added ./Demos/PartitionerTest, ./Demos/PartitionerTestFrame
- Added PARTITIONER protocol
  (Gianluca Collot <gianlucac@tin.it> Dec 12 2000)


Version 0.9.9.4
---------------

- Repackaged all demos: they are now in the JavaGroups.Demos package
- Removed deadlock detection in pbcast.GMS (not needed, as there are
  no receursive synchronous calls)
- Fixed bug in ReusableThread: now threads are released correctly
- Converted Thread.stop() in all files
- Fixed bug in Scheduler.java: added interrupt() to Stop(). We cannot
  just use queue.Close(), because the sched_thread might be in a
  different portion of the code (namely
  current_task.thread.wait()). Therefore we have to interrupt it as
  well to make sure it actually goes on to check its state (and
  whether it should terminate)
  (bela Dec 10 2000)


Version 0.9.9.3
---------------

- Added pbcast.GMS: GMS protocol without FLUSH
- Added pbcast.PBCAST protocol, implements Bimodal Multicast (Probabilistic Broadcast)
- Added STATE_TRANSFER protocol for PBCAST
  (bela Nov 29 2000)

- FD.java: removed FdHeaders from regular messages


Version 0.9.9.2
---------------

- Removed iBus
  (bela Nov 27 2000)


Version 0.9.9.1
---------------

- Added DistributedTree building block
  (bela Sept 12 2000)

- Added DistributedTreeDemo
  (bela Sept 12 2000)


Version 0.9.9
-------------

- Added LogicalLink, Link and WANPIPE classes. Theses can be used
  as bottom layer to have a TCP-based interconnect between 2
  machines. LogicalLink provides a logical WAN pipe, bundling multiple
  physical links into one. As long as 1 physical link is up, the
  logical link is up as well.
  (bela June 29 2000)

- Fixed bug in TCP/ConnectionTable: connections to failed members were
  still in the connection table, causing further requests to new
  incarnations on the same address to fail. Fix is two-fold: first
  'double-writes' are used to detect when peers have closed their side
  of the connection and second, before we write to a peer, we check
  whether it is in the group. If not, we close the socket to it and
  re-open it. This is double-dutch, but I want to be on the safe
  side.
  (bela July 3 2000)

- Link/LogicalLink work now.
  (bela July 7 2000)

- Added Debugger (./Debug). Provided hooks in Protocol.java to
  interact with Debugger.
  (bela July 22 2000)

- Modified Link: added interface for missing heartbeats and
  re-detecting them. Parameterized timeout and timeout_interval for
  each Link: AddLink() of LogicalLink. Also made initial socket
  connection *timed*: if an interface (local or remote machine) is
  down, we won't hang, but just continue, mark the interface as down
  and periodically try to create a connection to it.
  (bela July 25 2000)



Version 0.9.8
-------------

- Fixed memory leak in ConnectionPool. Replaced
  readObject()/writeObject() on socket by write(byte)/read(byte[]).


Version 0.9.7
-------------

- Added support for TCP as protocol (files TCP.java and TCPPING.java
  in .JavaStack/Protocols directory).
  (bela June 16 2000)

- Added class ConnectionPool (./JavaStack directory). Takes care of
  establishing and tearing down TCP connections on demand.
  (bela June 16 2000)



Version 0.9.6
-------------

- Modified some file to compile under JDK 1.2.2 (name collision with
  List)
  (bba Feb 9 2000)



Version 0.9.5
-------------

- Modified tunneling (files TUNNEL, PING, Router, RouterStub):
  GossipServer and JRouter are now merged into one:
  Router. GossipClient was replaced by RouterStub. Both PING and
  TUNNEL can now access the Router on the same port. Removed files
  JRouter, GossipClient.
  (bba Dec 10 1999)

- Fixed bug in Router: when a client reconnects under the same addr,
  but a different socket, we need to use the new address to send out
  messages (but the client still stays registered under its old
  address) (bba Dec 12 1999)

- Moved UdpHeader class out of UDP.java (will also be used by Router)
  (bba Dec 16 1999)



Version 0.9.4
-------------

- UNICAST: view change cannot remove all non-members: it may be the
  case that 2 new members P and Q want to join the group, P is
  admitted and Q has sent its JOIN request (causing a unicast
  connection to be created in UNICAST). Now the view change for P is
  sent, this removes the connections for those processes that are not
  members in the view (Q isn't yet official member). Therefore
  connections must be removed upon reception of SUSPECT rather than
  VIEW_CHANGE.
  (bba Dec 8 1999)

- Modified UNICAST: retransmit thread (AckSender window) has to be
  killed when STOP event is received. (bba Dec 8 1999)




Version 0.9.3
-------------

- New version of STABLE, based on GRPCs. Makes use of existing seqno
  information in NAKACK (using event GET_MSGS_RECEIVED)
  (bba Nov 19 1999)

- Renamed RpcGMS -> GMS

- Added SortedList (bba Nov 23 1999)

- Fixed bug in AckSenderWindow(): addition of new message to empty
  window did not check seqno, nor wake up retransmission thread
  (bba Nov 29 1999)

- Replaced SortedList.AddAscending(): more efficient version
  (bba Nov 29 1999)

- Modified AckSenderWindow (uses SortedList now)
  (bba Nov 29 1999)

- Modified demo apps: UNICAST layer has to be *above*
  NAKACK. Otherwise, NAKs and ACKs of the NAKACK layer are reliable
  too (causing way to many msgs, e.g. acking of ACKs themselves) !
  (bba Nov 30 1999)

- Removed PT2PT protocol layer, Pt2ptFsm, Pt2ptHeader: replaced by
  UNICAST layer (bba Nov 30 1999)

- Set deadlock detection default to true (in RequestCorrelator)
  (bba Dec 1 1999)

- Resending of unstable messages in NAKACK (REBROADCAST_MSGS): now an
  additional header (WRAPPED_MSG) is added which contains the same
  seqno as the original message, but also a field 'sender' to which
  the ACK has to be sent. This is so because the original sender of
  the message may be different from the coordinator who re-broadcasts
  the message. If ACKs were not sent to the re-broadcaster but
  instead to the original sender (who may have crashed), the
  coordinator would wait indefinitely for all ACKs.
  (bba Dec 2 1999)

- FLUSH protocol: when soliciting unstable message, so far only the
  highest seqnos for received message were returned. Now, each sender
  returns the highest seqno it sent, which may be higher than
  received. This ensures that no messages are missing when
  re-broadcasting the message digest as part of the FLUSH.
  (bba Dec 3 1999)







Version 0.9.2
-------------

- Modified STABLE's defaults: gossip has to be sent much less often;
  now gossip is sent every 100 msgs or 10 secs (which ever comes first).

- Modifications in FLUSH/NAKACK/RpcGMS: the flush protocol now does
  not return all unstable messages (as determined by the STABLE
  protocol), but just those that are determined by consensus (fewer
  messages have to be re-broadcast). The advantage is that STABLE does
  not need to emit STABLE events frequently. See file FLUSH.java for details.
  (bba Nov 17 1999)


Version 0.9.1
-------------
 (bba Nov 13 1999)
- Removed several superfluous fields from Message (e.g. id, rsp_id, oneway)
- Modified FRAG.java (depended on Message.GetId())
- Modified FragmentBuffer/DefragmentBuffer in Util.java


Version 0.9
-----------

- Adapted demos (bba Nov 12 1999)
- Removed the following classes:
    - Dispatcher
    - ChannelEntry
    - MethodInvoker
    - RemoteMethodCall
    - LazyEvaluator
    - RepeatedUnicast
    - SyncCall
    - MessageCorrelator
    - Command, AndCommand, OrCommand
    - Conf
    - SlidingWindow
    - Subject
    - Observer
    - Timer
    - MNAK, GMS, GmsImpl

  Therefore this version will break existing code that is based on
  these classes ! Either use a previous version, or rewrite the code
  using the new classes (e.g. RpcDispatcher for Dispatcher)

- Added ChannelListener (bba Nov 5 1999)




Version 0.8.6
-------------

- Modified LEAVE protocol: leaving member has to wait until it has
  received all messages of the current view before it may
  leave. Otherwise it may receive fewer messages in its last view than
  the other members, which would violate virtual synchrony.



Version 0.8.5
-------------

- Increased priority of drawing (receiver) thread in demo programs
  ./Demo/Draw.java, ./Demo/DrawIpMcast.java and
  ./Demo/DrawIpMcastX.java. The drawing thread seemed to starve on
  heavy drawing.

- Replaced implementation of Queue: the old version was based on
  Vector, which scale badly when used as FIFO queues; removal/addition
  of element causes all remaining elements to shift. New version uses
  linked list.

- Implemented interface Externalizable in Message.java, Header.java:
  huge performance improvement ! Header: in addition to the byte rep,
  we also store object directly (caching). Thus, Message.PeekHeader()
  does not always have to reconstruct an object from the byte rep !
  (bba Sep 3 1999)

- Implemented List and Stack: faster versions of their respective
  java.util.* companions (not based on Vector).

- Address.Compare(): now uses hashCode() between InetAddresses
  instead of string form -> performance improvement

- Modified NakAckWindow: replaced Vectors with Lists





Version 0.8.4
-------------

- Modified NAKACK layer: GET_STABLE_MSGS not needed, STABLE layer sends
  stability msgs periodically anyway
  (bba Aug 13 1999)



Version 0.8.3 Aug 13 1999 (bba)
-------------------------------
- Added MessageDispatcher: equivalent of MessageProtocol for
  applications. This required changes to Channel/JChannel (UpHandler)

- Added RpcDispatcher: equivalent of RpcProtocol for applications.


Version 0.8.2 Aug 10 1999 (bba)
-------------------------------

- Modified GroupRequest: not only suspect messages can cause an RMC to
  terminate, but also view changes (e.g. when an RMC is initiated
  after a suspect event has been received, but before the view change
  has been seen. Otherwise this would block forever).




Version 0.8.1 July 05 1999 (bba)
--------------------------------

- Added VIEW_ENFORCER: drops all messages until the new member is
  joined. Then acts as pass-through.




Version 0.8.0 July 02 1999 (bba)
--------------------------------

- Modified View/ViewId: View now contains ViewdId, moved ViewId to
  main directory




Version 0.7.6 June 25 1999 (bba)
--------------------------------

- Added PIGGYBACK layer: combines multiple messages into a single
  larger one
- Modified STATE_TRANSFER layer: now target(s) of ST can be given
  (modifications also in Channel, JChannel).


Version 0.7.5 June 18 1999 (bba)
--------------------------------

- Work on RpcGMS and FLUSH layers
- Added BLOCK processing to FLUSH



Version 0.7.4 June 17 1999 (bba)
--------------------------------

- Modified Channel/JChannel to be able to receive Events (applications may
  already send Events): this enables building blocks to communicate with
  protocol layers via Events.

- Modified NAKACK: ACK scheme independent from NAK, e.g. numbering of messages




Version 0.7.3 June 14 1999 (bba)
-------------------------------

- First draft of FLUSH protocol
- Added FD_RAND protocol layer: based on polling of randomly selected members




Version 0.7.2 June 9 1999 (bba)
-------------------------------

- Modified NakReceiverWindow: now ranges (e.g. [4-8]) in
  retransmissions are detected, this avoids having to send several
  retr msgs. Instead just 1 msg is sent for each range.

- Added AckMcastSenderWindow: used for lossless delivery to group
  members in NAKACK (ACKer)




Version 0.7.1 June 8 1999 (bba)
-------------------------------

- Modified several files to remove warnings from Jikes compiler
  (pedantic flag activated)



Version 0.7.0 May 27 1999 (bba)
-------------------------------

- Added total order protocol (TOTAL.java). Written by Manish Sambhu
  (mms21@cornell.edu)



Version 0.6.9 May 27 1999 (bba)
-------------------------------

- Created NAKACK protocol. NAK-based scheme that can be switched to
  using ACKs on the fly (and back again). Uses 2 classes to do so.

- Created NakReceiverWindow out of SlidingWindow (will be removed
  soon), thread is now created only when needed (ther might be many
  NakReceiverWindow instances !). Also, retransmitter thread does not
  check age of message any more, just presence or absence.



Version 0.6.8 May 20 1999 (bba)
------------------------------

- Modifications in RpcGMS: simpler join algorithm (client side /
  coordinator side)



Version 0.6.7 May 18 1999 (bba)
------------------------------

- Modified MethodLookupClos: better handling of primitive types
- Renamed subdirectory 'Tests' -> 'Demos' and 'tests' -> 'Tests'



Version 0.6.6 Apr 15 1999 (bba)
------------------------------

- Added classes Scheduler, ReusableThread, ThreadPool
- Modified RequestCorrelator to use Scheduler. Now, RequestCorrelator
  can be set to prioritize requests that would cause a deadlock.
- Added DEADLOCK layer. Uses RequestCorrelator with deadlock detection
  to enable 'recursive synchronous group RPCs'.



Version 0.6.5 Apr 13 1999 (bba)
------------------------------

- Added requirements checking. Added 4 methods RequiredUpServices(),
  RequiredDownServices(), ProvidedUpServices() and
  ProvidedDownServices() to Protocol.java. Configurator now checks for
  each protocol layer whether all its requirements on other layers are met.



Version 0.6.4 Apr 12 1999 (bba)
------------------------------

- Modified MembershipListener: added methods for getting/setting state
- Modified PullPushAdapter: dito
- Added JGroups/Tests/TotalOrderPull.java demoing
  PullPushAdapter-based state transfer


Version 0.6.3 Apr 9 1999 (bba)
------------------------------

- Added DELAY protocol. Will delay all outgoing or incoming messages
  by n milliseconds, where n can be determined by the user


Version 0.6.2 Apr 9 1999 (bba)
------------------------------

- Bug fix in GossipServer
- Changes to GossipClient: will only register when both local address
  and group address are known



Version 0.6.1 Apr 1 1999 (bba)
------------------------------

- Added state transfer interface to Channel; Channels stay
  backwards-compatible to existing applications
- Added protocol STATE_TRANSFER
- Updated documentation: STATE_TRANSFER, Channel interface


Version 0.6.0 Mar 12 1999 (bba)
-------------------------------

- Added MessageProtocol and RpcProtocol (subclasses of
  Protocol). These can be used when peer communication between the
  same layers in different stacks is required, e.g. for GMS. Both
  subclasses implement synchronous group messages/method calls.

- Created new GMS layer: RpcGMS, RpcCoordGmsImpl,
  RpcParticipantGmsImpl and RpcClientGmsImpl. Uses state pattern
  (client, coord, participant). Also makes use of RpcProtocol.

- Modified PING: removed merge functionality. Added merge
  functionality to separate layer (MERGE).

- Created initial (simplistic) version of MERGE protocol. Only
  discovers out-of-group members, and sends up MERGE event. MERGE is
  not yet handled by RpcGMS.



Version 0.5.9 Feb 26 1999 (bba)
-------------------------------

- Modified SUSPECT handling in GMS: when FD suspects a member, it
  mcasts a SUSPECT message to all members. At each member, this will
  generate a SUSPECT message, which is sent up the stack, starting
  from the FD layer. The GMS layer then checks whether the coordinator
  itself is suspected. If this is the case, the members are sorted and
  a new coordinator is chosen deterministically by each member. The
  new coordinator then mcasts a new view. If the coordinator itself is
  not suspected, it removes the faulty member from its local view and
  installs a new view. The modified algorithms removes 1 round of
  multicasting plus a redundant check on who the coordinator is.



Version 0.5.8 Feb 5 1999 (bba)
------------------------------

- Changed Ctor, Close, Connect and Disconnect in JChannel (only
  implementation): when disconnecting, a channel is not supposed to
  receive any more messages (this was the case). Also, a process has
  to acquire a new local address when re-joining (this was not the
  case).



Version 0.5.7 Feb 1 1999 (bba)
------------------------------

- Added protocol UNI: uniform failure-atomic group mcast
- Added protocol PING: get initial members and periodical sending of
  i-am-alive message (used to overcome partitions)
- Changed GMS/GmsImpl to make use of PING




Version 0.5.6 Jan 19 1999 (bba)
-------------------------------

- Added ./Algorithms/GroupRequest, ./Algorithms/AndCommand
- Added RequestCorrelator
- Moved JavaStack/Event.java to ./Event.java. Internal channel
  implementations use now Event instead of QueueItem (code reduction)




Version 0.5.5 Jan 14 1999 (bba)
-------------------------------

- Renamed ./algorithms to ./Algorithms



Version 0.5.4 Jan 13 1999 (bba)
-------------------------------

- Back to square 1: dropped unicast mode altogether, essentially back
  to version 0.5.2 !



Version 0.5.3 Jan 4 1999 (bba)
-------------------------------

- Changed unicast interface. Renamed Connect() to Join() and
  Disconnect() to Leave().
- A channel is now operational for unicast messages after the
  Channel() constructor has been called. Only when Join() is called
  will it be able to send/receive group messages.
- The changes to the interfaces/classes require application programs
  usingt version 0.5.2 to be modified and recompiled.



Version 0.5.2 Dec 29 1998 (bba)
-------------------------------

- Modifications in the event sequence when creating a channel and when
  connecting to it (START, STARYT_OK, CONNECT, CONNECT_OK, DISCONNECT,
  DISCONNECT_OK, STOP, STOP_OK)
- Got rid of LowLevelCommunication interface
- Local address is set by SET_LOCAL_ADDRESS (sent up by lowest layer)
- Peer address is set by CONNECT(peer_addr)



Version 0.5.1 Dec 22 1998 (bba)
--------------------------------

- Fairly extensive changes to the Channel interface: changed
  ChannelFactory, Connect() and Receive(). Receive() now returns
  Objects rather than Message. These might be Messages, Views or
  Blocks. Channel is now pure pull-oriented. Removed Cast() and
  several Send() methods.



Version 0.5 Dec 21 1998 (bba)
-----------------------------

- Added new protocol PT2PT: TCP-like reliable point to point connection
- Changed Channel interface: separation of channel creation, Connect(),
  removal of Destroy() -> existing programs will need to be modified
  to use the new classes

- The changes to the interfaces/classes require application programs
  written for version 0.4 to be modified and recompiled.



Version 0.4 Dec 10 1998 (bba)
-----------------------------

- Added several new protocols (MACK, MNAK)
- Fixed IP MCAST bug (UDP.java)
- Fixed gossip bug (UDP.java)


Version 0.3 Oct 1998
--------------------

- First version (0.3) released (bba)