forked from JacORB/JacORB
-
Notifications
You must be signed in to change notification settings - Fork 0
/
REL_NOTES
1453 lines (1238 loc) · 64.8 KB
/
REL_NOTES
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
JacORB RELEASE NOTES
www.jacorb.org
________________________________________
Features
- free CORBA 2.0/2.3/3.0/3.1 implementation (LGPL license)
- 100% Java, no native code
- fully multithreaded, very good performance
- IDL compiler, complies to rev. 2.3 of the Java language mapping
- DII, DSI
- native IIOP, supports IIOP 1.2 Code sets and IIOP over SSL
- GIOP 1.2, Bidirectional GIOP
- ETF (IIOP, MIOP and IIOP NIO transports)
- POA
- QoS (timing policies, sync scope)
- AMI (callback model)
- OBV
- DynAny
- Implementation Repository with GUI
- Interface Repository with GUI
- Applet support
- Portable Interceptors (for service context passing)
- Object Service implementations
- Interoperable Naming Service (with graphical interface)
- Trading Service (extension of Mark Spruiell's JTrader,
separately available).
- Notification and Event Service (by Alphonse Bendt)
- Transaction, collection and concurrency services
(by Alex Sinishin and Viacheslav Tararin of DekaSoft
Ltd., Ukraine,taras@deka.kp.km.ua)
- Compatible with TAO Implementation Repository
- Support redundancy retrying for Implementation Repository and Naming
Service
H I S T O R Y O F C H A N G E S
-------------------------------------------
This Release
============
- ORB
- Improve encapsulation of internal code.
- Implement the method validate_connection.
- Support setting the ORB ID using the -DORBId option.
- Support multi-network interfaces using -ORBListenEndpoints option.
- Change logging to debug level (https://bugzilla.redhat.com/show_bug.cgi?id=950294).
- Add support for GIOP 1.1 Fragmented Messages (BZ950).
- Add public API for Client/ServerRequestInfo.
- Add fix for NIO with large requests (BZ939).
- Add fix for disconnect logic on bad connection (BZ947).
- TAO ImR/NS Compatibility
- Implement the new property "jacorb.use_tao_imr".
- Support redundancy for failing over to a secondary ImR or a NS service
when the current service is no longer available. JacORB will iterate
the profiles the ImR-ified IOR while attempting to re-establish
conversations with the targeted ImR or Naming Service (NS).
- JacORB is inter-operable with the TAO ImR by setting the new property
"jacorb.use_tao_imr" to "on".
- Add demo and integration test suites for TAO ImR, and TAO NS.
- Misc
- Add integration test suite for JacORB ImR.
- Default logging now supports showing class & method information.
- Support compiling with IBM JDK 1.6/1.7.
- IDL
- Fix for line endings in generated code (BZ942)
3.2
===
- ORB
- Fix for UCS-2 codeset encoding.
- Fix for RMI-IIOP Exception marshalling.
- Fix for unnecessary duplicate in ServantDelegate.
- Fix for logging output (Bugzilla 937).
- Improve fix for associating Servant with an ORB (Bug 923).
- Only call removeContext if addContext has been called (Bug 925).
- Fix for multiple removeLocalRequest calls.
- Notification
- Fix for ProxyPullSupplier (Bug 804)
- Fix for disorderd events (Bug 716)
- IDL Compiler
- Add flag to turn off timestamps in generated code.
- Fix for alias interface operations.
- Updated IDL files to http://www.omg.org/spec/CORBA/3.1.1
- Updates for IDL to Java Language Mapping 1.3 (formal/2008-01-11)
- Misc
- Support for JDK 7
- Move Ant dependency to IDL compiler.
- Deploy a zip of the IDL files with the IDL compiler.
- Add Maven demo and documentation.
- Remove the neccessity to generate the bin scripts.
- Improve documentation.
3.1
===
- ORB
- Fix current_component with DynArray/DynStruct/DynSequence to conform to spec.
- Output iiop version when printing Corbaloc URLs
- Call _this_object on Servants for ServantManager created objects.
- When selecting an address for localhost attempt to find non-loopback first
for both IPv4 and IPv6.
- Fix for portable interceptor ordering issue with colocated calls.
- IDL Compiler:
- Predefined preprocessor symbols are now built into the compiler
rather than included from the jacorbdefs.idl file, which has been
deprecated.
- Naming Service
- Fix for NameManager display/cyclic detection. Fix for refresh counter.
- Misc
- Fix Maven GAV for IDL compiler.
3.0
===
- ORB
- Fix issue with handling Locate Requests
- Add ability to transmit OBJECT_FORWARD on receiving a
Locate Request with short object key.
- Documentation
- Add missing properties.
- Misc
- Fix for demo compilation.
- Add Maven pom wrappers.
- Add SendingContext IDL
3.0 RC 1
========
- ORB:
- Fix for interceptors & exception propagation.
- Fix for backwards compatibility with stubs and reply_status.
- Fix for configuration caching issue.
- Fix for IPv6 socket creation.
- IDL:
- Fix for union IDL compilation.
- Misc:
- Include org.omg.TimeBase in jacorb.jar
- Rename JDK15TypeCode* to TypeCode*Impl
3.0 beta 2
==========
- ORB:
- Refactor ETF factories to remove static information.
- Provide public createObjectIOR functions in ParsedIOR.
- Refactor internal use of Singleton ORB and provide a new
org.omg.CORBA.ORBSingleton to avoid clashes with e.g. JDK Singleton.
- Add implementation of ValueInput/OutputStream
- Add support for ISO8859-15
- Fix for interop with Glassfish.
- Remove static information from ETF Factories.
- POA:
- Add timeout for poa threadpool.
- Fix for NullPointer in POA destroy.
- Add QoS to run Servant code in its own context classloader.
- IDL Compiler
- Avoid create_local_interface_tc generation if using deprecated.
- In Helpers, for cached typecode, change lazy holder pattern to double checked
locking.
- Fixes:
- Fixed empty configuration parameters' values processing for Integer,
Long, Float and Boolean types.
- Integrate suggested patch from Bug 810 to address the problem of
an infinite loop that might be raised due to certain errors when
using the Implementation Repository (IMR). Note that this is an
incomplete fix. Along with Bug 896, interactions with the IMR
require general updating, which is an effort that will require
sponsorship.
- Fix for compiling omg/IOP.idl
- Fix for bug 915. This prevents massively threaded clients from
processing multiple Location Forward messages from the IMR,
discarding and resending requests to the target server.
- Misc:
- Improve version identification in output/jar manifests.
- Fixes for building under Windows platforms.
- Add wrapper scripts enabling IMR_SSD, the service startup daemon,
to be registered as a windows NT service.
- Changed level of some logging output to be quieter.
- Minimum JDK is now 1.6.
3.0 beta 1
==========
- ORB:
- Timer Queue implementation added prior to NIO has been merged
with the Selector framework used to support NIO. The write timeouts
for blocking I/O still work and the interface is the same.
- now supports non-blocking I/O for the client side. Makes use of the
Java nio package. Connection establishment, sending requests and
awaiting response can now be timed and nonblocking.
- fix that allows custom SocketFactory class plugins to
specify their dependency on the ORB either as
org.jacorb.orb.ORB or org.omg.CORBA.ORB in their
constructor.
- changed PICurrent's set_slot/get_slot to raise BAD_INV_ORDER
if they're called from within an ORB initializer.
- provided a implementation for org.omg.CORBA.ValueBaseHelper.
- Improve checks for if an ORB has been shutdown.
- fix Object::duplicate(4.3.2.1).
- Fix for initialisation of a ServantDelegate
- Change set_policy_overrides to match 4.3.9.1 specification.
- fix possible race condition with the value factory hashmap.
- modified the JSSE socket factories to throw INITIALIZE if
no ssl keystore is set or if the filename is wrong.
- made the object key mapping feature more efficient (ORB.addObjectKey,
properties jacorb.orb.objectKeyMap).
- Remove finalize from Delegate to improve performance and scalability. Client code is now
responsible for calling _release on CORBA Objects as necessary.
- fixed a bug that prevented to use an ORB with
jacorb.giop_minor_version=0.
- improved PrintIOR output.
- fixed handling of -ORBInitRef parameters and added handling
of -ORBDefaultInitRef parameter.
- fixes for platform java detection in jaco script.
- fixed issue with deadlock in AOM - move access to requestController
outside synchronised block.
- added more strict checking for wstring/wchar types during demarshalling
GIOP 1.0 does not allow them.
- fixed issue where exceptions during AMI didn't work
if the IDL was specified with pragma prefix.
- fix ExceptionHolderImpl Configuration
- fix for the IIOPLoopback feature. It didn't work when connecting to
the actual IP of the host instead of 127.0.0.1.
- added property to enable the Socket Option SO_REUSEADDR
- Fix for nullpointer within Delegate when multiple threads call release.
for server sockets (jacorb.connection.server.reuse_address).
- allow to configure eager/lazy DNS resolution.
- fixes for BiDirectional GIOP and SSL.
- fix for client interceptor send_request exception propagation.
- fixes for DynUnion.to_any.
- fix for initialising the ORB with properties.
- allow SSL keystore to be configurable.
- call shutdownOutput before closing socket as recommended by
http://java.sun.com/j2se/1.5.0/docs/guide/net/articles/connection_release.html
- applied patch from JacORB Bugzilla #801 for AOM Thread creation.
- New MIOP ETF transport added. Original design and implementation by Alysson Bessani.
Further work on implementation, specification compliance, interoperability and
integration by Nick Cross.
- Updated Java mapping from 02-01-02 to 03-01-02 and simplified IDL files [Bugzilla 451].
- Add test for to verify OMG stub code get_component is available.
- fix jacorb.giop_minor_version property usage (bugzilla 879).
- Fix for handling of max_server_connections. (bugzilla 878).
- Fix for decoding and output of IORs with multiple TAG_ALTERNATE_IIOP_ADDRESS.
- Allow the ORBs internal deferredArrayWrites to be configurable.
- BufferManager implementation has been reworked - code simplifying and
tiding.
- Added buffer manager expansion policies support.
- added jacorb.dns.force_lookup property that allow to turn on/off FQDN host
name reverse lookup for IIOPAddress and IORs.
- Fixed error in Codeset configuration setting NCSW.
- Added optional thread ID to log output. Use property
jacorb.log.showThread to enable.
- Added new explicit timeout for blocked sends, use properties
jacorb.connection.request.write_timeout and
jacorb.connection.reply.write_timeout to enable.
- Fixed incorrect child POA processing (bugzilla #806).
- Performance optimisations
- Added property to disable client orb policies for performance.
- Fixed SSL properties reading and processing (bugzilla #820).
- Implemented portable interceptors correctly for local objects.
- New lines in log messages fix (bugzilla #873).
- Remove ReplyReceiver from pending_replies if an error happens when reading the reply.
- Fix servantdelegate bind issue to prevent cached object delegate being set to null.
- Fix for Current overwriting in local calls between Client/ServerRequestInfo
- Fix for sync policies and null pointer within Delegate.
- Propagate objectId to ServerRequestInfo for local calls.
- Fix for setting port address to zero when SSL is in use or when an
IORInterceptor adds a CSI component with transport protection.
(24.5.1 from CORBA 04-03-01).
- Added jacorb.interop.null_string_encoding to allow handling of null strings.
Thanks to Fabiano Ghisla.
- Bind client socket to wildcard address instead of localhost in
PortRangeSocketFactory
- Allow OAIAddr to be specified when using PortRangeSocketFactory.
- Fix for the incorrect GIOP v1.1 message header creation in RequestOutputStream
- Fix delegate bind issue to prevent cached object delegate being set to null.
- Fix for oneway/sync scope none with parameters.
- An implementation of the Object::create_request operation has been added with an exception list.
- Fix for attribute setting of jacorb.security.ssl.*.protocols
- Apply optimisation for string marshalling.
- Add TypeCode equal/hashcode
- Fixed marshalling error: Found indirection marker, but no corresponding original typecode.
- Change default of compactTypecodes to be off (no compaction)
- Fix for non-configured CDRInputStream when created with a ORBSingleton.
- Fix for the problem with handling negative values in DynFixed.
- Fix for the high CPU load issue on the Windows hosts caused by default configuration
re-reading.
- Fix for request handling to ensure RelativeRoundtripPolicy and REQUEST_DURATION_POLICY
timeouts bound the entire invocation including any embedded invocations/re-invocations.
- Fix to ensure that current contexts are added and cleared correctly when handling
embedded calls.
- Fix for local interceptors to prevent client PICurrent being overwritten by
a server PICurrent.
- Improved Configuration storage and made the usage more consistent.
- Added PKCS key storage type and CRL support for SSL (experimental, bugzilla 883).
- Fix for chunking and boolean types.
- Allow ORB props/args to be propagated to the Singleton config.
- Add system property jacorb.classloaderpolicy for whether to resolve classes via thread
context class loader or the defining class loader.
- Fix for Bug852 - preserve original typecode when marshalling objects within Any
(thanks to Zoltan Bordas of OpenSpirit Corp).
- POA:
- Fix for reference_to_id error checking.
- Modify AOMRemoval thread to shutdown on POA shutdown.
- Add fix for policy operation name clash.
- Fix for incorrect opsHash keys for AMI POA (bug894)
- IDL Compiler:
- Fix for IDL compiler issue where a union with an enum discriminator could send through
a non-defined value.
- Fix for IDL compiler issue forward declared interface and inherited interface.
- Fix for IDL compiler issue where compiler generates incorrect type code for sequences
of local interface.
- Fix for IDL compiler issue with constant long long generation.
- fixed issue where the IDL compiler generated imports for the
unnamed package.
- fixed issue where the IDL compiler removed a custom backend set
through the API.
- fixed issue where nested sequences would result in invalid java
code.
- changed generated stub code so that rmi repository id is skipped
for idl defined valuetypes.
- additional parentheses around const expression in labels in unions.
- fixed issue in generated code when extracting sequence from any.
- fixed issue where holder classes for user-defined exceptions
weren't generated.
- fixed IDL parser issue where repository ID using pragma prefix
with more than 1 space before ID caused an parse error.
- fixes for IDL compiler struct/typedef/array compilation outside
of modules.
- Enhance generation to close inputstreams.
- Enhance generation to null delegate objects.
- fixed issue where CR/LF symbols were incorrect in generated
files (bugzilla #483).
- fixed issue where IDL compiler generates erroneous code for
the infinity float values (bugzilla #851).
- fix for IDL detecting the bounds violations for string type.
- changed IDL compiler logging from Apache LogKit to native JDK
logging.
- applied patch from JacORB bugzila #673/674 which fixes issue where
Helper.type() method implementation for recursive valuetypes was
incorrect.
- add default serialVersionUID generation (#802).
- Use HashMap rather than Hashtable in skeleton code.
- Support for typeprefix has been added to the idl compiler.
- Reset include path between multiple runs of jacidl.
- Fixes for IDL compiler union discriminators.
- Added -sloppy_identifiers to permit certain illegal identifiers.
- Enhance Ant JacIDL task to add error checking, pass sloppy identifiers and
i2jpackage through.
- Fix for IDL compiler union generation - added additional check that prevents explicitly
defined cases usage for __default(_discriminator) method.
- Fix for IDL compiler when the enum declaration is used in 'switch' clause of union.
- Fix for IDL integer types ranges checking.
- Fixes for IDL compiler when concatenating string literals.
- Fix for IDL compiler array naming.
- Fix for IDL compiler unary minus in constant definition.
- Fix for IDL compiler package generation for nested types (Bugzilla #700).
- Fix for IDL compiler unions scope processing.
- Fix typecode for typedef'd array (Bugzilla #703).
- Fix for IDL compiler failure when multiple unions specify the same branch name.
- Fix for IDL compiler issue where Java keywords that have been added
since JDK1.5 are used as identifiers.
- Fix for IDL compiler issue where compiler incorrectly checks discriminator in default
branch.
- Fix for IDL compiler issue where no error is generated when a forward declared union is
defined as an interface.
- Fix for newline parsing with included files.
- Fix for typedef with array and operator.
- Fix for IDL compiler for generation of system exception classes.
- native types containing #pragma prefix "omg.org" weren't processed properly.
- Improve and fix toString on stubs for UnionType.
- Implemented Portability Stubs and Skeletons as per 4.21.6 of IDL to Java Mapping
- Improve typecode generation to use lazy initialization class holder idiom.
- Refactor to simplify code (bug715)
- Refactor previous typecode generation change to use volatile/synchronised and double checked locking instead.
- Naming Service:
- Fix for BindingIterator leak (Bugzilla 647).
- Renamed configuration properties and default to off.
- Work around cyclic graphs when running NamingManager
- Fix for memory leaks (Bugzilla 835) and Mico interoperability (Bugzilla 617).
- Interface Repository:
- use a persistent POA for the repository servant.
- Fix IDL to remove is_abstract to bring into compliance with specification.
- Fix for problem with encapsulated modules loading (Bugzilla 884).
- Tools:
- enhanced dior's ability to recognize different ORB types.
- enhanced dior to allow parsing of multiline IOR files.
- enhanced dior to add optional output of corbaloc strings.
- Documentation
- Configuration layout and network configuration improved.
- added section about the usage of corbaloc in conjunction
with SSL enabled servers.
- Classloader chapter added.
- added buffer manager factory configuration details.
- update SSL/SAS documentation.
- added NAT and firewall network configuration section.
- Updates for installation.
- Misc
- Update SLF4J libraries to 1.6.4
- Split ORB jar delivery into jacorb.jar (ORB/IMR/IR/NamingService) and
jacorb-services.jar (all other services e.g. Notification/Transaction/Collection)/
2.3.1
=====
JacORB now uses SLF4J for logging, which allows users to select a
logging backend simply by putting another jar on the classpath.
All major logging backends are supported, including Log4J, JCL,
and JDK logging, with the latter now being the default in the
distribution. See the JacORB Programming Guide for details about
the new logging architecture.
In the course of this, the dependency on Apache Avalon has been
removed.
- ORB:
- new configuration option jacorb.iiop.alternate_addresses,
allows adding TAG_ALTERNATE_IIOP_ADDRESS components to
IIOP profiles without using interceptors (thanks to
RemedyIT for suggestion and sponsoring)
- pass message details from UserException's as ServiceContext over
the wire if JacORB specific helper/skeleton code is used
[-generate_helper jacorb] (JAC#144).
- Fix for iteration during shutdown (JAC#264).
- added more strict checking of correct string sizes during
demarshalling of CDR streams.
- fix for broken socket connect timeout mechanism.
- fix for bug during logfile initialization routine
that caused the creation of multiple empty logfiles.
- fixes for stream closure with sync scope none.
- IDL Compiler:
- added option that allows to control the portability level of
the generated helper classes
[-generate_helper deprecated|portable|jacorb] (JAC#516).
- removed -omg option (#72,#98)
- Enhance generation to close streams (RTJ#476).
- Interface Repository:
- fix to allow IDL files that use #pragma prefix to be loaded into
the IR (#367).
- Fixes:
- fix to allow interoperability with TAO persistent IOR's (#735)
- removed usage of the deprecated read_fixed/write_fixed methods from
the ORB core and generated code (JAC#516).
- fixed wstring valuetype interoperability issue with the sun orb.
- patch from bugzilla #708 to fix occasional deadlock/timeout issue within
GIOPConnections.
- let POA.reference_to_servant raise BAD_PARM if a null reference is passed in.
- Documentation
- enhanced socket factory documentation
2.3
===
- ORB:
- new property: jacorb.listener.server_socket_timeout. This is a
workaround for Java bug #4344135 and is is only useful in conjunction
with the SI&C SSL socket factories.
- Fix recursive typecode bug.
- Fixed CDROutputStream to correctly handle RMI object replacement.
- Improve protocol/IOR rebind handling.
- fixes for shutdown/applet reload (bugzilla #459).
- Fix for interceptors service context propagation.
- Fix for interceptor multithreading and exception handling.
- Fix for client interceptor send_request forward exception detection
and propagation.
- Fix for timeout overrides (bugzilla #611).
- new properties: jacorb.net.tcp_listener and jacorb.security.ssl.ssl_listener for
specifying the respective listener interfaces to receive event notifications.
- new properties: jacorb.connection.server.keepalive and
jacorb.connection.client.keepalive to configure TCP KeepAlive on sockets.
- Logging additions for debugging.
- Added AcceptorExceptionListener for notifications by the
serversocket acceptor thread. NOTE: The default behaviour now is
to shutdown the ORB whenever an Error or SSLException is thrown
by accept().
- new property: jacorb.enhanced_thread_name to allow additional information to be
added temporarily to the Thread name
- Fix for invoking an operation when the ORB has been destroyed.
- Any: added better support for Streamable values.
- Any: use TypeCode.equivalent() instead of TypeCode.equal()
in equal() as per specification.
- Any: fix extract_string(), extract_wstring(), didn't
account for value being insterted as a stream.
- Fix for PolicyManager. ADD_OVERRIDE didn't work.
- CDRStream typecode marshaling cleaned up.
- Fix for POA dispatching with transient objects.
- Added org.jacorb.orb.factory.FixedAddressSocketFactory that
binds client sockets to the address specified by the property
"OAIAddr".
- Add IORMutator plugin.
- if the value of jacorb.connection.client.max_receptor_threads
is exceeded, a NO_RESOURCES exception is thrown instead of a
hang.
- Fix OutOfMemory issue when parsing invalid IOR's.
- Fix for hanging process when shutting down POA after accessing a destroyed object (bugzilla #400).
- Change default connect_timeout to 90000
- new property: jacorb.codeset. By default this is on. If off, JacORB will ignore
all codeset component info profiles and will turn off explicit marshalling with
codesets (re Strings). Fixes for char transmission.
- use new Socket API to specify timeouts during Socket.connect
instead of using our own timeout implementation.
- new property interop.sun to fix RMI/IIOP related interoperability issues
with the Sun ORB (see also http://lists.spline.inf.fu-berlin.de/mailman/htdig/jacorb-developer/2006-May/008251.html).
- IDL Compiler:
- Support for attribute exceptions (getraises/setraises) has been added to the compiler.
- Add option (-genEnhanced) to generate toString/equals on stubs. Only implemented
in StructType so far.
- Optimized generated code when using octet sequences.
- fix for boxed valuetype with sequences generation (bugzilla #429).
- fix to use options -diistub and -ami_callback in conjunction (bugzilla #687).
thanks to Thomas Leineweber for providing the patch.
- fixes for line number output and error messages from compiler.
- Use any speed accessors like insert_long/extract_long in Helper
classes for aliased basetypes.
- fixed invalid handling of forward decl of CORBA::TypeCode
- Improve generation for IDL exceptions.
- Fix for invalid IDL compilation.
- fix for "IDL compiler fails for typedef within valuetype declaration" (bugzilla #601). thanks
to Thomas Leineweber for providing the patch.
- Tools:
- Updated 'dior' utility to decode realtime policies.
- Security:
- new property: jacorb.security.randomClassPlugin. Used by developers to plugin their
own SecureRandom initialisation.
- SecurityLevel 2 and IAIK support removed.
- Documentation:
- Added chapter on threads to Programming Guide.
- Enhanced logging documentation.
- Enhanced description of configuration properties.
- Fixes:
- fixed bugzilla #721. Thanks to Scott Melby for reporting and providing a fix.
- fixed bugzilla #667. Thanks to Rich Doyle for reporting and providing a fix.
2.2.5
=====
- Documentation
- Updated and merged JacIDL HTML into ProgrammingGuide.
- Improved SSL documentation
- Document all available loggers
- Improved property documentation
- Improved command line documentation.
- IDL Compiler:
- Fix for ValueType generation
- Improve error checking in compiler.
- Fix to remove ObjectHelper class generation.
- Fix typedef bounded string generation bug.
- ORB:
- DynValue idl added
- Enhance Any equals for value comparison.
- Improve typecode error checking.
- Fix for using an Object Reference inside a DynAny
- new properties (jacorb.connection.client.max_idle_receptor_threads,
jacorb.connection.client.max_receptor_threads, jacorb.connection.server.max_idle_receptor_threads,
jacorb.connection.server.max_receptor_threads) to control size of the MessageReceptorPool
- name all threads created by JacORB (bugzilla #472)
- new property: jacorb.orb_initializer.fail_on_error. Control if errors
caused by an ORBInitializer will make ORB.init() fail or not.
- POA:
- new property: jacorb.poa.thread_pool_shared. This is to share a
single thread pool amongst all the POAs.
- IDL:
- Added CosProperty.idl
- Logging:
- singleton ORB uses a logfile if the property
jacorb.logfile is set.
2.2.4
=====
- JacORB now supports IPv6, thanks to work by David Hartman.
- POA:
- Fix usage of implname with transient and persistent servers (see the Programming Guide).
- IDL Compiler:
- improve JacIDL Ant task initialisation.
2.2.3
=====
- The IDL compiler can now generate DII stubs, using the new option
"-diistub". Thanks to Thomas Leineweber for adding this feature.
- New properties are available for assigning protocol-independent
addresses:
* OAAddress=<protocol_name>://<protocol_address>
for example: OAAddress=iiop://myhost:1234
OAIAddr and OAPort are still used to make IIOP-specific addresses,
but are superceded by OAAddress
* jacorb.ior_proxy_address=<prot_name>://<prot_addr>
supercedes jacorb.ior_proxy_host and jacorb.proxy_port
* jacorb.imr.ior_proxy_address
Note that OASSLPort is still necessary when configuring a specific
SSL port number even when using OAAddress.
- ported the notification service to use the
JSR 166 backport (http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent)
instead of util.concurrent.
- added JMX support for the notification service.
2.2
====
- new and enhanced:
* ORB configuration is more flexible now:
- a new, common properties file orb.properties is considered
- multiple ORBs in a single JVM can now have separate configurations
(please consult the Programming Guide for details).
* namemanager GUI improved (shortcuts, color, bind IOR options)
* There is a new property jacorb.connection.client.connect_timeout,
which specifies a timeout for the initial TCP/IP connection attempt.
* The new property jacorb.poa.check_reply_end_time specifies
whether any ReplyEndTimePolicy (or RelativeRoundtripTimeoutPolicy)
should also be checked on the server side. This requires that
the clocks of the client and server machine are synchronized to
the same order of magnitude as the timeout. The default for
this property is off, unlike previous releases, where this check
was always done.
* IDL compile has a new option -in <file> with which it will accept
files that do not end in ".idl"
- maintenance:
* Removed property jacorb.security.change_ssl_roles and the
associated "Change SSL Roles" feature.
* removed scalability bottleneck due to superflous synchronization
* Usage of JacORB loggers generally more consistent
2.1
====
- new:
* Implementation of the ORB PolicyManager interface to
set QoS policies ORB-wide
* CDR 1.2 Portable Interceptor codec
* "-cldc10" IDL compiler option to generate J2ME/CLDC1.0
compatible stub code
* Removed deprecated option -i on the IDL Compiler
* logging enhancements (more structured logger name spaces)
- fixed:
* connection management problem that resulted in hanging
clients
* server-side memory leaks (#456/458)
* incompatibility with libraries in existing J2SDK 1.4
installations ("endorsed dir")
2.0 (GA)
======
- You can now use IORInterceptors to add new profiles to IORs
(rather than just adding components to profiles that were
created by the ORB). To achieve this, the IORInfo object
that is passed to IORInterceptors now implements a special
JacORB interface, org.jacorb.orb.portableInterceptors.IORInfoExt.
This interface provides methods to look up existing profiles
and add new ones to an IOR.
- rename property jacorb.connection.server_timeout to
jacorb.connection.server.timeout, for consistency
- added property
"jacorb.connection.client.timeout_ignores_pending_messages"
which controls if client-side idle timeouts take care of
pending messages or not.
- added property "jacorb.connection.client.retry_on_failure"
which controls if network failures on existing connections
should yield a COMM_FAILURE or should trigger a remarshaling
of all pending messages.
- IDL compiler:
minor bug fixes
new option -unchecked_narrow
- ORB performance improvements
- more logging clean up
2.0 beta 3
==========
- loads of bug fixes
- more ETF work (corbaloc support)
- IDL compiler now generated code only if the IDL file is more recent
than any previously generated code.
- remorphing of logging, now using Apache Avalon interfaces to go
to Logkit
- Synchronization fixes.
- ORB:
- Added proprietary call ORB::addObjectKey.
2.0 beta 2
==========
- bug fixes only, no new functionality
2.0 beta 1
==========
- Logging:
- Added property 'jacorb.logfile.append' to support appending to
rather than overwriting an existing log file.
- Added property 'jacorb.logfile.maxLogSize' to support rolling logs.
- Added property 'jacorb.log.timestamp' to control whether log
messages are timestamped or not.
- ORB:
- Added property 'jacorb.interop.indirection_encoding_disable' to turn
off indirection encoding for repeated typecodes.
- Added property 'jacorb.dns.enable' to control whether DNS
names should be used in IORs.
- AMI (Asynchronous Method Invocation) is implemented.
At present, there is only support for the callback model.
- All QoS timing policies are implemented.
- SyncScopePolicy is implemented.
- The transport layer now conforms to the draft of the
Extensible Transport Framework (ETF, mars/2003-02-01)
(see Programming Guide for details).
- Two new properties, jacorb.poa.queue_wait and
jacorb.poa.queue_min allow the server to block when the
request queue is full.
- Fix for ClientRequestInfo target field value.
- Fix for marshaling of negative fixed values.
- Fix for reply status value for server side portable interceptors.
- Fix for generation of some basic type sequence holders.
- Fix for connection idle timeouts: These timeouts will now
respect pending messages.
- ApplicationExceptionHelper class fix for types with repository
identifiers including a prefix.
- Added server-side connection management (see programming
guide)
- Added support for GIOP CloseConnection messages.
- Added port range server socket factory support.
- IMR:
- Added property 'jacorb.imr.endpoint_port_number' for port IMR
runs on.
- IDL Compiler:
- fixed inheritance error (bug #345)
- now using the Apache logkit logging API
- Notification Services: now included! HOT!
1.4.1
=====
- Naming Service:
- Configuration property added to control purging of non active
entries on list operation.
- Configuration property added to run on fixed port.
- bug fixes:
- ORB:
- Reverted to old (1.3) IOR format to maintain backwards
compatibility.
- Added support for GIOP 1.2 Fragments
- IDL Compiler:
- Fix for long long constant assignment from constant.
- Tools:
- Updated 'dior' utility to decode ORB type tagged components.
- IMR:
- Allow crashed servers to be restarted by ServerStartupDaemon.
- Fix restarting server on fixed port [223].
- Fix when pinging objects to prevent 'non-jacorb object' warning.
- Fix multiple pings in replyNewLocation
- DII:
- Fix for client connection timeout with deferred requests.
- ORB:
- Two new client timeout policies to replace jacorb.connection.client_timeout:
- jacorb.connection.client.pending_reply_timeout - For request timeout
- jacorb.connection.client.idle_timeout - For connection timeout
- SSL:
- Changed SSL usage policy: SSL will now only be used, if both
sides support it and at least one side requires it. If the
client requires SSL, but the server doesn't support it, a
NO_PERMISSION exception is thrown.
1.4.0
=====
- bug fixes:
- ORB:
- Fix for delegate to stop infinite loop of calling from ImR
to server and back again if server is down.
- Fix to TypeCode::equal and TypeCode::equivalent operations
for handling recursive TypeCodes.
- Implementation of Request interface now throws BAD_INV_ORDER
exception when appropriate.
- The work_pending and perform_work operations now throw
BAD_INV_ORDER if the ORB has been shutdown.
- Fix to corbaloc URL parsing to recognize corbaloc:rir URLs
with no key string specified.
- Fix to parsing of IOR resources to allow multiple levels of
indirection before an IOR or corbaloc URL is
obtained.
- CodeSet support:
- Now putting CodeSet Tagged Component into correct
(MULTIPLE_COMPONENTS) profile.
- Not adding the CodeSetInfo interceptor anymore, if
GIOP 1.0 is used.
- Ignoring any CodeSet service contexts if GIOP 1.0
is used.
- Now throwing CODESET_INCOMPATIBLE exception, if no
matching code sets can be found.
- Portable Interceptors:
- Fix so that interceptors registered with an ORB initializer
are also applied to any objects registered as initial
references.
- IMR:
- Fix for restarting persistent server with same POA/Impl name.
- POA:
- Added an extra byte to object keys that contains a flag to
indicate the Lifespan Policy of the POA managing the object.
- ORB:
- Implemented the DII threading operations:
- send_multiple_requests_deferred
- send_multiple_requests_oneway
- poll_next_response
- get_next_response
- Added the TAG_ORB_TYPE component to IORs to indicate that they are
generated by JacORB.
- Added the property "jacorb.use_imr_endpoint" that when switched off
will write the server endpoint into the IOR instead of the ImR
endpoint (defaults to on).
- Use the server address specified by the "jacorb.ior_proxy_host" and
"jacorb.ior_proxy_port" properties when registering a POA with the
ImR (if these properties are set).
- Implemented a failover mechanism in the client Delegate whereby
the Delegate is able to find the ImR if the ImR goes down and comes
back up at a new address.
- Added property "jacorb.suppress_no_props_warning" that will
suppress the warning message when no properties file can be
found (if set to "on").
- Added property "jacorb.orb.objectKeyMap" to map object keys to
arbitrary (hopefully readable) strings, which in turn permit
the construction of short and simple corbaloc: IORs
- (Re-)Added support for UTF-8 for IDL types char and string
- DynAny:
- Implemented DynFixed interface.
- Build:
- JacORB classes directory no longer needed in CLASSPATH to
build JacORB.
- GIOP:
- Added missing functionality to handle LocateRequests and
LocateReplies.
- Appligator:
- New portable interceptor based implementation. Updates
to support multiple appligators in different subnets and
disable appligator use in local subnet. No HTTP tunneling.
- IMR:
- Background saving thread implemented.
New property "jacorb.imr.port_number" to configure a fixed port.
- Naming Service:
- added command line switch -p to make server come up on a given
port (convenience)
- made the file name command line argument optional
- Name Service can now be accessed using corbaloc: IORs with using
NameService as the object key
- Tools:
- New 'fixior' utility provided to patch port and host information
into an IOR.
- IDL Compiler:
- Flag '-nofinal' can be used to generate code where the class
definitions are not final.
- Forward and multiple declaration of Unions, ValueTypes, Structs
and Interfaces
- now compiles the complete set of IDL value type definitions
- Domain Management:
- removed this component to reduce code and library size since
noone seems to use it
1.4 beta 4:
===========
- bug fixes:
- Fixed bug that would lead to a NullPointerException
when using corbaloc IORs without the explicit protocol
qualifier (i.e. corbaloc::<host>:<port>/<object key>).
The following just didn't make it into the beta 3 release
notes:
- SSL/JSSE
- added properties
jacorb.security.ssl.server.cipher_suites
jacorb.security.ssl.client.cipher_suites
that allow for setting the enabled cipher suites for
JSSE
- SSL/IAIK
- incompatibility notice: Please note that the IAIK SSL
and JCE libraries don't work using the JDK 1.4. This is
because the JDK 1.4 only accepts signed cryptography
providers, but the IAIK JCE isn't.
- Corbaloc with SSL
- added new corbaloc protocol qualifier "ssliop" to allow
for using corbaloc IORs together with SSL. Also added
properties
jacorb.security.ssl.corbaloc_ssliop.supported_options
jacorb.security.ssl.corbaloc_ssliop.required_options
to be able to configure these SSL connections.
1.4 beta 3:
===========
- Documentation:
Additional chapter added covering the dynamic any classes.
Appendix added describing the various configuration properties.
- Sockets:
Support has been added for configurable socket factories.
An additional factory has been provided that supports the
use of ports from a configurable range to support firewall
traversal.
- Initial References:
Support has been added for resolving object references
from JNDI and as resources. This can be done using
'jndi:' or 'resource:' based URLs. Unrecognised URL
types are now passed down to the underlying JDK for
processing ('https:', 'ftp:' etc.). Note that the
javax.naming package required for JNDI support is not
included in the JDK 1.2 and this package must be added
explicitly to the CLASSPATH.
- Local Objects:
The org.jacorb.orb.LocalityConstrainedObject class has
been superseded by org.omg.CORBA.LocalObject class as
defined in the CORBA 2.4 IDL to Java mapping specification.
Locally constrained objects, such as portable interceptors,
should now extend this class.
- Portable Interceptors:
- Adapted to CORBA 2.5 IDL (ForwardRequest exception
now doesn't have the permanent flag anymore)
- SSL/JSSE:
- Integrated patch to be able to access the peers
certificates also using JSSE 1.0.2 with a JDK < 1.4
- Added property
"jacorb.security.ssl.server.cipher_suites" to allow
selecting ciphersuites (Sun-JSSE only)
- ORB:
- Added support for corbaloc:ssliop style IORs to be
able to use corbaloc together with SSL. WARNING: This
is not (yet ;-) standardized by the OMG, but
agreed-upon by many more (TAO, MICO, ...) open source
ORBs. The SSL behaviour defaults to
EstablishTrustInTarget, but can also be configured by
the properties
jacorb.security.ssl.corbaloc_ssliop.supported_options
jacorb.security.ssl.corbaloc_ssliop.required_options
- bug fixes:
Naming Service:
- Fix for handling of name strings containing escaped