Contents
- Minor improvement to RemoteGen: an empty alwaysInclude config element will be ignored and does no longer result in an empty #include statement.
- Documented a RemoteGen restriction: usage of superfluous struct/class keyword in parameter or return value declarations will result in bad generated code. See the Remoting Limitations document for more information.
- Fixed two WSDL generation bug causing RemoteGen to hang or abort with an error message due to a symbol lookup error.
- Check against unnamed parameters in function signatures.
- Fixed a namespace-related code generation bug in BundleActivatorImpl code generator (generated #include statements would be misplaced if a namespace was used).
- Added Visual Studio project and solution files for 64-bit builds on Visual Studio 2008 and 2010.
- Fixed a problem in RemoteGen where RemoteGen would create a non-compiling header file when certain typedef'd types were being used as method arguments.
- Fixed a heap corruption bug in SoapLite transport when handling certain malformed requests.
- Added JSON Transport supporting the JSON-RPC 2.0 specification.
- Added Poco::Remoting::ORB::listeners() to enumerate all registered Listener objects.
- RemoteGen now supports the new output/timestamps element to control the generation of timestamps in the header comments of generated files.
- Improved deserializer code generation. If a serializable class has a swap...() method for a data member, it is used instead of the setter, resulting in greatly improved performance especially with vector or set data members.
- fixed #0000111: Bad serializer/deserializer code generated for classes with self-referencing members and constructor.
- fixed #0000112: Header comment in generated serializer/deserializer has wrong filename.
- performance improvements to Binary Transport
- fixed a Binary Transport bug: a certain byte sequence in the stream will no longer be treated as EOF marker
- BinaryTransport optimizations: only create stream once for each connection (not for each request, as previously).
- fixed a problem with serializing/deserializing empty std::vector<char> variables in the Remoting Binary transport
- fixed a bug in the Remoting Binary Transport's BinaryStream class, where short reads from the underlying SocketStream wouldn't be handled, causing bad successive reads.
- Remoting applications using the updated Binary transport are not compatible with applications using earlier versions of the binary transport
- Based on POCO C++ Libraries 1.3.6
- fixed 0000104: Container deserialization bug
- RemoteGen: fixed typos in error messages and generated documentation.
- RemoteGen now generates Document/Literal wrapped-style WSDL. The names of the generated XSD types and WSDL port have changed to allow code generators generate better class names. Also, we now use part name "parameters" instead of "body", which allows .NET to create better interfaces. To enable the new features, specify a <serviceLocation> element instead of <serviceLocations> in the RemoteGen configuration file.
- fixed 0000094: globbing on Windows should not be case sensitive
- fixed 0000096: [unsigned] long long [int] not recognized by RemoteGen
- Remoting now supports Poco::URI as built-in type (mapped to xsd::string for SOAP)
- fixed a possible crash in RemoteGen when handling unknown types
- fixed 0000102: RemoteGen generates bad deserialization code for enum data members.
- Remoting now handles serialization of std::vector<char> in an optimized way. The SoapLite transport serializes it as base64Binary.
- Remoting now supports "out" parameters. This is enabled by specifying a "direction" attribute for the parameter.
- fixed #0000109: Optimize vector serialization/deserialization: deserializeVectorBegin() now returns the size of the vector, if it's known, allowing for an upfront reserve() to improve deserialization performance.
- fixed #0000110: Static and const data members should be ignored by generated serializers/deserializers.
- fixed a code generation bug with enum argument default values.
- The WSDL generated by RemoteGen has been changed in some details. This may lead to naming changes in code generated from the WSDL. However, call interfaces have not been changed.
- The serialization of std::vector<char> has been changed. This requires that all clients and servers using std::vector<char> in method interfaces are upgraded simultaneously.
- The Poco::Remoting::Deserializer::deserializeVectorBegin() method got a new parameter. Custom transports will have to be updated accordingly.
- Based on POCO C++ Libraries 1.3.5
- Enumerations can now be used in interfaces. Enumeration values are serialized as integers. In a SOAP/WSDL interface, enumerations are reduced to integers.
- Integration with OSP has been improved. The Remote Generator can now generate a BundleActivator class for both client and server bundles.
- WSDL file serving in the SoapLite transport has been improved.
- Warnings reported by GCC 4.3 have been fixed.
- The Remoting documentation has been significantly improved.
- Various usability improvements to the code generator.
- Some element names of the code generator configuration document have been changed for better consistency and readability. However, the previous names are still supported.
- The Binary transport now supports a "late connect" and "automatic reconnect" feature. Late connect means that the socket connection will be opened when the first request is sent from the client to the server. Automatic reconnect means that if a remote call results in a network-related exception, the socket connection is closed and will be re-opened with the next request.
- OSP Service generation has been changed. If OSP Service generation has been enabled, the generated interface class is a subclass of OSP::Service and Proxy or RemoteObject instances can be directly registered with the OSP Service Registry.
- fixed 0000073: Serializer generation for nested classes
- fixed 0000072: Warning reported when compiling generated serializer
- fixed 0000071: Binary Transport deserialization error if server closes connection
- fixed 0000070: URI for objects registered with the binary transport must not use http scheme
- fixed 0000069: late connect feature binary
- fixed 0000068: reconnect feature
- fixed 0000067: Exception if current host name DNS lookup fails
- fixed 0000066: OSP Service Code Generation
- fixed 0000065: Add new Ptr typedef to interface class
- fixed 0000063: Remoting method return values are always cached
- fixed 0000062: Write of a zero length sequence over SOAPlite causes an error
- The URI schema for identifying objects using the Binary transport has been changed from "http" to "remoting". All code generated with RemoteGen 1.3.2 or earlier needs to be re-generated.
- OSP Service generation in RemoteGen has been changed. If OSP Service generation has been enabled, the generated interface class is a subclass of OSP::Service and Proxy or RemoteObject instances can be directly registered with the OSP Service Registry.
- fixed 0000061: CppParser: Support root namespace references (namespaces starting with ::)
- fixed 0000060: CppParser: support using and using namespace declarations in header file.
- fixed 0000059: SoapLite/OSP deserialization error
- fixed 0000058: Remoting/OSP: invalid memory access on shutdown
- fixed 0000053: RemoteGen fails with assertion if Remoting headers cannot be found
- fixed 0000063: Remoting method return values are always cached
- fixed 0000062: Write of a zero length sequence over SOAPlite causes an error
- fixed 0000054: Wrong WSDL generated in case of inheritance
- fixed 0000056: Specify property values on the command line
- fixed 0000057: Include paths in generated serializer/deserializer code
- fixed 0000055: Environment Var Expansion in RemoteGen spec file
- ORB now provides a way to unregister listeners.