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
|
PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
===========================================================================
. (JTC) provide example Telecom Log Service Persistance Strategies that
use BerkeleyDB, ODBC, etc. Refine Strategy interface as required.
. (JTC) autoconf support for tests and examples subdirectories.
. (OCI) Reenable support in the Notification service for BlockingPolicy,
DiscardPolicy, and OrderPolicy. (Note: BlockingPolicy requires -ORBWaitStrategy rw)
. (OCI) Fix various memory and thread leaks in the Notification Service.
. (OCI) Fix Notification Service use of PacingInterval and MaximumBatchSize.
. (OCI) Fix Notification Service detection of dead consumers.
. Add support for CORBA/e compact and micro
PLANNED MAJOR CHANGES TARGETED FOR TAO-1.5.2
====================================================
. (Remedy/Ossama) Add the ability to use the sendfile API to send out data
on the transport
USER VISIBLE CHANGES BETWEEN TAO-1.5.1 and TAO-1.5.2
====================================================
. 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 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.
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.
|