ICE 3.4.2
[php5-ice-freebsdport.git] / php / CHANGES
blobaedd12a944094113ed4f5d2c4694d0f5d1e6041b
1 NOTE: This file is no longer being updated. See the CHANGES file in
2       the top-level directory.
5 Changes since version 3.2.0
6 ---------------------------
8 - Added support for protected class data members using the new
9   metadata tag ["protected"]. The tag can be applied to a Slice class
10   or to individual data members.
12 - Added Communicator::setProperty.
14 - All local methods on a proxy that return the "same" proxy with
15   a different attribute (such as ice_oneway and ice_secure) now return
16   a proxy of the same class as the original. As a result, once you
17   have downcast a proxy, it will rarely be necessary to downcast it
18   again. For example, you can rewrite the following statements
20   $base = $ICE->stringToProxy(...);
21   $twoway = $base->ice_checkedCast("::Demo::Hello");
22   $oneway = $twoway->ice_oneway()->ice_uncheckedCast("::Demo::Hello");
24   as simply
26   $base = $ICE->stringToProxy(...);
27   $twoway = $base->ice_checkedCast("::Demo::Hello");
28   $oneway = $twoway->ice_oneway();
30   The local methods ice_facet and ice_identity still return a proxy of
31   the base class Ice_ObjectPrx, since a change to the proxy's facet
32   or identity typically refers to an object with a different Slice
33   type and therefore requires a new downcast.
35   This change does not affect the behavior of existing code. However,
36   code that depends on these new semantics will not run correctly
37   using prior versions of Ice.
39 Changes since version 3.1.1
40 ---------------------------
42 - This release is compatible with PHP 5.1.6, 5.2.0, and 5.2.1.
44 - Added the following proxy methods:
46   ice_isPreferSecure
47   ice_preferSecure
48   ice_isThreadPerConnection
49   ice_threadPerConnection
50   ice_getCachedConnection
52 - Added Communicator::propertyToProxy() which creates a proxy from
53   a set of properties. This function allows you to set various local
54   proxy settings, such as the locator cache timeout, which cannot be
55   set using stringToProxy().
57 - The supported platforms for IcePHP are now Linux and Windows XP.
58   The process for building IcePHP on Linux has also changed; see the
59   INSTALL file for details.
61 - Added UnexpectedObjectException. This exception is raised if you
62   use Slice classes and client and server are compiled with mismatched
63   Slice definitions. Alternatively, this exception is raised if you
64   use dynamic invocation and pass a class of the wrong type as an
65   operation parameter.
67 Changes since version 3.1.0
68 ---------------------------
70 - No changes.
72 Changes since version 3.0.1
73 ---------------------------
75 - Removed removeObjectFactory() from the communicator interface.
77 - PHP 5.1.4 is the required version for this release.
79 - Added identityToString and stringToIdentity to the Communicator
80   interface.
82 - Removed setDefaultContext operation on Communicator.
84 - Eliminated the source of deprecation warnings when E_STRICT is
85   enabled.
87 - Added proxy method ice_getSecure.
89 - Deprecated the following proxy methods:
91   ice_communicator
92   ice_connection
93   ice_newIdentity
94   ice_newFacet
95   ice_newContext
96   ice_newAdapterId
97   ice_newEndpoints
99   These methods will be removed in the next major release. You should
100   use the new methods shown below:
102   ice_getCommunicator
103   ice_getConnection
104   ice_identity
105   ice_facet
106   ice_context
107   ice_adapterId
108   ice_endpoints
110 - Added the property Ice.Default.LocatorCacheTimeout and the proxy
111   method ice_locatorCacheTimeout(). If a cached endpoint is older
112   than the configured cache timeout, the Ice runtime won't use
113   the cached endpoint. Instead, the Ice runtime will query the
114   Ice locator service to retrieve up-to-date endpoints and then update
115   the locator cache. Please see the Ice manual for more information.
117 - Added the proxy method ice_endpointSelection, which allows an
118   application to control how endpoints are selected at connection
119   establishment. Two endpoint selection types are currently supported:
120   Random and Ordered.
122 - Added the proxy method ice_cacheConnection. This method allows you
123   to enable or disable the caching of the connection by the proxy. By
124   default, the proxy will cache the connection to avoid looking it up
125   for each request. Disabling the connection caching is useful to do
126   per-request load balancing: the proxy will select a connection for
127   each request and the request will eventually be sent to different 
128   servers.
130 - Added support for the Ice::Connection interface.
132 Changes since version 3.0.0
133 ---------------------------
135 - Fixed a bug in the Slice parser that caused problems if an
136   included file contained white space in the file name.
138 - Added source compatibility with PHP 5.1.2. A configure script for
139   PHP 5.1.2 is provided as configure-5.1.2.gz.
141 Changes since version 2.1.2
142 ---------------------------
144 - Removed ice_default() method from proxies.
146 - Added the proxy method ice_connectionId, which allows an application
147   to control connection reuse.
149 - Ice_loadProfile now raises Ice_ProfileNotFoundException if a
150   given profile is not found and Ice_ProfileAlreadyLoadedException
151   if a profile has already been loaded.
153 - Added proxy methods to retrieve the proxy adapter id and endpoints
154   (ice_getAdapterId() and ice_getEndpoints()) and to create a new
155   proxy with a new adapter id or new endpoints (ice_newAdapterId() and
156   ice_newEndpoints()).
158 - Added ice_communicator() and ice_toString() to proxies. The return
159   value of ice_communicator() is always the value of $ICE.
161 - Ice.ObjectImpl is now an abstract class that cannot be instantiated.
162   This change should be transparent to application code.
164 Changes since version 2.1.0
165 ---------------------------
167 - Added -E option to the various Slice compilers to print preprocessor
168   output on stdout.
170 - A crash occurred if the global variable $ICE was used before a
171   profile was loaded. This now causes an error message.
173 - Attempting to print a proxy value resulted in a fatal error.
174   This has been fixed so that printing a proxy displays it in
175   stringified form.
177 Changes since version 2.0.0
178 ---------------------------
180 - Added setDefaultContext() and getDefaultContext() to the
181   Ice::Communicator interface. This allows a default context to be
182   established on a communicator-wide basis. See section 29.8.3 in
183   the doc.
185   Added ice_defaultContext to Ice::ObjectProxy. This creates a new
186   proxy that uses the default context established on the communicator.
188 Changes since version 1.1.2
189 ---------------------------
191 - Compatibility with Ice 2.0.0.
193 - Added the communicator method getProperty(name[, default]).
195 - The configuration directives in an INI file are now named
196   "ice.config", "ice.slice", and "ice.options", for consistency
197   with the global directives. The previous directive names are
198   still supported.
200 - Fixed a bug that prevented Apache 1.x from starting.
202 - The documentation has always stated that same-named constructs
203   cannot be directly nested inside each other. (For example, a
204   module `M' cannot contain a constant named `M'.) The Slice parser
205   compiler did not enforce this correctly up to now for modules
206   containing constructs with the same name as the enclosing module.
207   This has been fixed and now results in a diagnostic.
209 - The Slice parser now deprecates Slice definitions at global scope:
210   only modules can be defined at global scope. Everything else
211   (constants, classes, interfaces, etc.) must be defined inside a
212   module.
214   For the time being, the compiler issues a warning for each global
215   definition but continues to compile the code. Global non-module
216   definitions will elicit a hard error two releases from now.
218 Changes since version 1.1.1
219 ---------------------------
221 - Fixed a compilation error for Visual C++.
223 Changes since version 1.1.0
224 ---------------------------
226 - Compatibility with PHP 5.0.0 (final).
228 Changes since version 1.0.3
229 ---------------------------
231 - Changed facet interface to be compatible with Ice 1.4.0.
233 - Added the proxy methods ice_newContext and ice_getContext.
235 - Fixed a bug that could cause a marshaling exception for uninitialized
236   string data members.
238 - Fixed a marshaling bug that caused an assertion failure in the value
239   demo.
241 Changes since version 1.0.2
242 ---------------------------
244 - Fixed a link error when compiling with Visual C++ 6.0.
246 Changes since version 1.0.1
247 ---------------------------
249 - Updated for compatibility with Ice 1.3.0 and PHP5 beta4. The patch
250   in the file patch.txt must be applied to PHP5b4 prior to building
251   it on Unix platforms.
253 - Added the member functions ice_preMarshal and ice_postUnmarshal to
254   Ice_Object. The default implementations do nothing, but subclasses
255   may override them to take special action before marshaling and after
256   unmarshaling, respectively.
258 - Added __toString functions to certain Ice exceptions.
260 - Added support for building on HP-UX with aCC.
262 - Added configure script to simplify building on Linux/Solaris/HP-UX.
264 Changes since version 1.0.0
265 ---------------------------
267 - Minor fixes for compatibility with PHP 5.0.0b2.
269 - Fixes for Ice 1.2.0 API changes. The ice_flush operation has been
270   removed from proxies, and the operation flushBatchRequests has been
271   added to the communicator.
273 - The base Ice exception class (Ice_Exception) now derives from the PHP
274   base exception class (Exception). Also, the mapping for exceptions now
275   supports an optional string argument to constructors. This argument
276   represents the exception "message" and is passed to the base Exception
277   constructor unmodified.