Changes since version 1.1.0
---------------------------

- Added ice_secure/ice_isSecure, ice_datagram/ice_isDatagram,
  ice_batchDatagram/ice_isBatchDatagram proxy methods.

- Added Communicator::propertyToProxy() which creates a proxy from
  a set of properties. This operation allows you to set various local
  proxy settings, such as the locator, which cannot be set using
  stringToProxy().

- Trailing characters past the adapter id in a stringified proxy
  will now raise a ProxyParseException.

- Added ice_getAdapterId/ice_adapterId proxy methods.

- Removed most specializations of the Ice::ProtocolException local
  exception to reduce code size. Only the following specializations
  were kept:

  Ice::CloseConnectionException
  Ice::ForcedCloseConnectionException
  Ice::MarshalException
  Ice::MemoryLimitException

  The reason for the protocol error is now provided in the 'reason'
  member of Ice::ProtocolException.

- Attempts to change the attributes of a fixed proxy now result in a
  FixedProxyException rather than just ignoring the change request and
  returning the same proxy. Also, attempts to marshal a fixed proxy
  now result in a FixedProxyException rather than a MarshalException.

- Removed default context support.

- Removed support for local interfaces in Slice.

- Message batches are now automatically flushed when the total size of
  the batch reaches the message size maximum. This feature can be
  controlled using the Ice.BatchAutoFlush property, which is on by
  default.

- Added destroy() operation to the ObjectAdapter interface. This
  operation must be called in order to reclaim the adapter's resources
  and be able to recreate a new adapter with the same name. Destroying
  a communicator automatically calls destroy on all of its adapters.

- For object adapters without endpoints, Ice.Trace.Network >= 2 now
  prints a trace message.

- The Slice keyword 'nonmutating' is now deprecated; 'idempotent'
  should be used instead. A new metadata directive is supported for
  backward-compatibility (see below).

- New Slice metadata for operations:

  - ["nonmutating"] provides backward compatibility for idempotent
    operations that were previously declared using the deprecated
    'nonmutating' keyword. You can replace the 'nonmutating' keyword
    with '["nonmutating"] idempotent' to maintain compatibility with
    objects implemented using Ice 3.0 or 3.1.

- Removed getDefaultProperties() method, and the global default
  properties. If you need global properties, you can easily
  create your own global variable.

- Added new createProperties() methods:

  public static Properties
  createProperties(StringSeqHolder args, Properties defaults)

  public static Properties
  createProperties(String[] args, Properties defaults)
 
  "defaults" represents an optional set of default properties
  used to initialize the new Properties object. Ice properties 
  defined on the command-line and properties defined in the Ice
  config file may override these default properties.
   
- Added identityToString and stringToIdentity to the Communicator
  interface.

- Added new operation Communicator::createObjectAdapterWithRouter(),
  which creates a routed object adapter. An object adapter may now
  be associated with at most one router, which is defined using this
  operation or by setting the <AdapterName>.Router property. Also
  as a result of this change, the ObjectAdapter::addRouter() and
  ObjectAdapter::removeRouter() operations have been removed.

- Added communicator initialize functions that take an argument of
  type Ice.InitializationData. This structure contains communicator
  members that may only be set during communicator initialization.
  Currently included are Properties and Logger. The initializeWithXXX
  functions have been deprecated and the setLogger() operation has
  been removed.

- Added requestId to Current.

Changes since version 1.0.0
---------------------------

- If several proxies share the same connection, and an operation call
  on one of the proxies causes a failure and the shared connection to
  be closed, then subsequent calls on the other proxies will try to
  establish a new connection instead of throwing an exception, even if
  retries are disabled.

- Added blocking client side concurrency model. The use of this model is
  controlled by the Ice.Blocking property.

- Fixed bug in identityToString() and proxyToString() that could cause
  incorrect string values to be returned for identities containing
  characters outside the ASCII range.

- The contents of the default context set on a communicator were
  ignored, so an empty default context was marshaled. Fixed this.

- Fixed a bug in the Slice parser that caused problems if an included
  file contained white space in the file name.

- Fixed a deadlock during shutdown that could happen with
  bi-directional connections.

- Removed ice_default() method from proxies.

- Connection::close(false) (i.e., graceful connection shutdown) now
  waits until all outstanding requests have completed.

- Ice.Communicator.createObjectAdapter() throws
  Ice.AlreadyRegisteredException if it is called with the name of an
  object adapter that already exists.
