1
+ # Ice 3.8 Changelog <!-- omit in toc -->
2
+
1
3
The entries below contain brief descriptions of the changes in each release, in no particular order. Some of the
2
4
entries reflect significant new additions, while others represent minor corrections. Although this list is not a
3
5
comprehensive report of every change we made in a release, it does provide details on the changes we feel Ice users
4
6
might need to be aware of.
5
7
6
- # Changes in Ice 3.8.0
8
+ - [ Changes in Ice 3.8.0] ( #changes-in-ice-380 )
9
+ - [ General Changes] ( #general-changes )
10
+ - [ Packaging Changes] ( #packaging-changes )
11
+ - [ Slice Language Changes] ( #slice-language-changes )
12
+ - [ IceSSL Changes] ( #icessl-changes )
13
+ - [ Integration with Platform SSL Engines] ( #integration-with-platform-ssl-engines )
14
+ - [ Removed Support for OpenSSL on Windows] ( #removed-support-for-openssl-on-windows )
15
+ - [ Removed IceSSL APIs] ( #removed-icessl-apis )
16
+ - [ Updated IceSSL Properties] ( #updated-icessl-properties )
17
+ - [ Removed IceSSL Properties] ( #removed-icessl-properties )
18
+ - [ C++ Changes] ( #c-changes )
19
+ - [ C# Changes] ( #c-changes-1 )
20
+ - [ Java Changes] ( #java-changes )
21
+ - [ JavaScript Changes] ( #javascript-changes )
22
+ - [ MATLAB Changes] ( #matlab-changes )
23
+ - [ Objective-C Changes] ( #objective-c-changes )
24
+ - [ PHP Changes] ( #php-changes )
25
+ - [ Python Changes] ( #python-changes )
26
+ - [ Ruby Changes] ( #ruby-changes )
27
+ - [ Swift Changes] ( #swift-changes )
28
+ - [ Ice Service Changes] ( #ice-service-changes )
29
+ - [ DataStorm] ( #datastorm )
30
+ - [ Glacier2] ( #glacier2 )
31
+ - [ IceGrid] ( #icegrid )
32
+ - [ IcePatch2] ( #icepatch2 )
33
+ - [ IceStorm] ( #icestorm )
34
+
35
+ ## Changes in Ice 3.8.0
7
36
8
37
These are the changes since the Ice 3.7.10 release in [ CHANGELOG-3.7.md] ( ./CHANGELOG-3.7.md ) .
9
38
10
- ## General Changes
39
+ ### General Changes
11
40
12
41
- Replaced ACM and connection timeouts by idle, inactivity, connect, and close timeouts.
13
42
- Idle timeout\
@@ -62,6 +91,8 @@ These are the changes since the Ice 3.7.10 release in [CHANGELOG-3.7.md](./CHANG
62
91
seconds, as usual. You can also override this value for a specific object adapter with the configuration
63
92
property ` AdapterName.Connection.CloseTimeout ` .
64
93
94
+ - Removed the ` setHeartbeatCallback ` operation on ` Connection ` .
95
+
65
96
- Add new properties for flow control.
66
97
- Max dispatches\
67
98
The maximum number of concurrent dispatches for each connection is now 100. You can change this value by setting
@@ -322,7 +353,13 @@ classDiagram
322
353
323
354
- Removed the ` --impl ` and ` -E ` options from the Slice compilers.
324
355
325
- ## Packaging Changes
356
+ - Added stricter property validation. Ice now throws an exception during communicator initialization when an unknown
357
+ Ice property is set.
358
+
359
+ - Added ` getIceProperty ` , ` getIcePropertyAsInt ` , and ` getIcePropertyAsList ` methods to ` Properties ` . These methods
360
+ return the value of an Ice property, or the default value if the property is not set.
361
+
362
+ ### Packaging Changes
326
363
327
364
- The Windows MSI installer is now built using the WiX Toolset. The WiX project files are included in the packaging/msi
328
365
directory.
@@ -356,7 +393,7 @@ classDiagram
356
393
357
394
- The ` slice2js ` Slice compiler is now included in the ` @zeroc/ice ` NPM package.
358
395
359
- ## Slice Language Changes
396
+ ### Slice Language Changes
360
397
361
398
- Removed local Slice. ` local ` is no longer a Slice keyword.
362
399
@@ -497,11 +534,11 @@ classDiagram
497
534
- Sequences can no longer be used as dictionary key types.
498
535
This feature has been deprecated since Ice 3.3.0.
499
536
500
- ## IceSSL Changes
537
+ ### IceSSL Changes
501
538
502
539
The SSL transport is no longer a plug-in. It is now built into the main Ice library and always available.
503
540
504
- ### Integration with Platform SSL Engines
541
+ #### Integration with Platform SSL Engines
505
542
506
543
Ice 3.8 introduces new IceSSL configuration APIs that allow you to configure the SSL transport using platform-native
507
544
SSL engine APIs. This provides significantly greater flexibility for advanced use cases.
@@ -513,13 +550,13 @@ SSL engine APIs. This provides significantly greater flexibility for advanced us
513
550
> These APIs are platform-dependent. A good starting point is the `Ice/secure` demo for your target platform and
514
551
> language mapping.
515
552
516
- ### Removed Support for OpenSSL on Windows
553
+ #### Removed Support for OpenSSL on Windows
517
554
518
555
In Ice 3.7 , IceSSL on Windows could be built with either Schannel or OpenSSL. In Ice 3.8 , since IceSSL is now built-in,
519
556
it always uses the platform’s native SSL APIs. On Windows, this means **Schannel is always used**;
520
557
**OpenSSL is no longer supported** on Windows.
521
558
522
- ### Removed IceSSL APIs
559
+ #### Removed IceSSL APIs
523
560
524
561
- **Certificate API**\
525
562
The `IceSSL::Certificate` type and related APIs have been removed. Applications that require access to certificate
@@ -533,7 +570,7 @@ it always uses the platform’s native SSL APIs. On Windows, this means **Schann
533
570
Password callback support has been removed. Applications can now provide certificates and keys directly through the
534
571
new configuration APIs.
535
572
536
- ### Updated IceSSL Properties
573
+ #### Updated IceSSL Properties
537
574
538
575
- **IceSSL.CertFile**\
539
576
This property no longer accepts multiple files. In Ice 3.7 , IceSSL with OpenSSL or Schannel allowed specifying two
@@ -556,7 +593,7 @@ it always uses the platform’s native SSL APIs. On Windows, this means **Schann
556
593
the now-removed certificate verifier APIs. Applications requiring custom trust logic should use the new validation
557
594
callbacks.
558
595
559
- ### Removed IceSSL Properties
596
+ #### Removed IceSSL Properties
560
597
561
598
Several IceSSL properties have been removed in Ice 3.8, either because better alternatives are now available, they are
562
599
no longer useful, or they go against best practices:
@@ -600,7 +637,7 @@ no longer useful, or they go against best practices:
600
637
Previously used to set the maximum certificate chain length. This feature was rarely used. Applications requiring this
601
638
functionality should implement a custom certificate validation callback.
602
639
603
- ## C++ Changes
640
+ ### C++ Changes
604
641
605
642
- There is now a single C++ mapping, based on the C++11 mapping provided by Ice 3.7. This new C++ mapping requires a
606
643
C++ compiler with support for C++17 or higher.
@@ -643,7 +680,7 @@ See `InitializationData::pluginFactories`.
643
680
`std::chrono::duration` values. The corresponding `ice_getInvocationTimeout` and `ice_getLocatorCacheTimeout` methods
644
681
now return `std::chrono::milliseconds`.
645
682
646
- ## C# Changes
683
+ ### C# Changes
647
684
648
685
- Upgrade to .NET 8.0 / C# 12.
649
686
@@ -686,7 +723,7 @@ plug-ins are created during communicator initialization. See `InitializationData
686
723
687
724
- Removed support for using `clr` as an alias for `cs` in metadata declarations.
688
725
689
- ## Java Changes
726
+ ### Java Changes
690
727
691
728
- Upgrade to Java 17.
692
729
@@ -712,7 +749,7 @@ initialization. See `InitializationData.pluginFactories`.
712
749
- Added support for the `Ice.ClassGraphDepthMax` property, which controls the maximum depth allowed when unmarshaling a
713
750
graph of Slice class instances.
714
751
715
- ## JavaScript Changes
752
+ ### JavaScript Changes
716
753
717
754
- The Ice for JavaScript NPM package has been converted to a scoped package named `@zeroc/ice`.
718
755
@@ -744,7 +781,7 @@ initialization. See `InitializationData.pluginFactories`.
744
781
do not reliably report errors during connection establishment. We advise against using the WebSocket transport on
745
782
these versions.
746
783
747
- ## MATLAB Changes
784
+ ### MATLAB Changes
748
785
749
786
- Upgrade to MATLAB 2024a.
750
787
@@ -784,11 +821,11 @@ initialization. See `InitializationData.pluginFactories`.
784
821
- The ` slice2matlab ` function has been updated to accept multiple arguments, which are passed directly to the
785
822
` slice2matlab ` compiler. In Ice 3.7, all arguments had to be provided as a single string, which was less convenient.
786
823
787
- ## Objective-C Changes
824
+ ### Objective-C Changes
788
825
789
826
- The Objective-C mapping was removed.
790
827
791
- ## PHP Changes
828
+ ### PHP Changes
792
829
793
830
- Removed the flattened mapping deprecated in 3.7.
794
831
@@ -808,7 +845,7 @@ initialization. See `InitializationData.pluginFactories`.
808
845
` ice_postunmarshal ` only makes sense if the application can register a custom Slice loader and Ice for PHP does not
809
846
provide custom Slice loaders.
810
847
811
- ## Python Changes
848
+ ### Python Changes
812
849
813
850
- Upgrade to Python 3.12.
814
851
@@ -900,12 +937,12 @@ initialization. See `InitializationData.pluginFactories`.
900
937
For example, ` ["python:memoryview:CustomFactory.myByteSeq:array.array"] ` indicates that the factory function
901
938
will return an ` array.array ` .
902
939
903
- ## Ruby Changes
940
+ ### Ruby Changes
904
941
905
942
- There are no Ruby-specific updates in this release. Nevertheless, we made many updates to Ice for Ruby: see
906
943
[ General Changes] ( #general-changes ) and [ Slice Language Changes] ( #slice-language-changes ) .
907
944
908
- ## Swift Changes
945
+ ### Swift Changes
909
946
910
947
- Upgrade to Swift 6.1.
911
948
@@ -928,9 +965,9 @@ initialization. See `InitializationData.pluginFactories`.
928
965
929
966
- Added a SwiftPM plugin, ` CompileSlice ` , that lets you compile Slice files as part of SwiftPM and Xcode builds.
930
967
931
- ## Ice Service Changes
968
+ ### Ice Service Changes
932
969
933
- ### DataStorm
970
+ #### DataStorm
934
971
935
972
- The DataStorm publisher/subscriber framework has been integrated into the Ice distribution, and is no longer a
936
973
separate product.
@@ -946,7 +983,7 @@ initialization. See `InitializationData.pluginFactories`.
946
983
947
984
- Fixed a bug in filter initialization that can result in segmentation fault when using a key or a sample filter.
948
985
949
- ### Glacier2
986
+ #### Glacier2
950
987
951
988
- Removed buffered mode. As a result, Glacier2 has now a single mode, the previous unbuffered mode.
952
989
@@ -959,7 +996,7 @@ initialization. See `InitializationData.pluginFactories`.
959
996
- Removed session timeouts configured using ` Glacier2.SessionTimeout ` . The Glacier2 router now relies on the common
960
997
idle check described under [ General Changes] ( #general-changes ) for these connection-bound sessions.
961
998
962
- ### IceGrid
999
+ #### IceGrid
963
1000
964
1001
- Removed deprecated server and application distributions in IceGrid. These distributions relied on the IcePatch2
965
1002
service.
@@ -968,11 +1005,11 @@ service.
968
1005
relies on the common idle check described under [ General Changes] ( #general-changes ) for these connection-bound
969
1006
sessions.
970
1007
971
- ### IcePatch2 Changes
1008
+ #### IcePatch2
972
1009
973
1010
- The IcePatch2 service was removed.
974
1011
975
- ### IceStorm Changes
1012
+ #### IceStorm
976
1013
977
1014
- The IceStorm configuration now uses the ` IceStorm ` prefix instead of the IceBox service name as prefix.
978
1015
0 commit comments