POCO v1.0.a1 Release Notes

Release Date: 2006-01-03 // about 18 years ago
    • mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
    • ๐Ÿšš moved MediaType::quote() to MessageHeader and made it public
    • โž• added MultipartWriter::stream()
    • ๐Ÿ“‡ Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
    • SIGPIPE is always blocked in main thread on Unix systems
    • โž• added EchoServer sample
    • ๐Ÿ›  fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
    • ๐Ÿ›  fixed a memory leak in NotificationQueue sample
    • โž• added comparison operators to Socket so that Sockets can be used as keys in maps
    • โž• added Socket::setBlocking()
    • โž• added StreamSocket::connectNB() (non-blocking connect)
    • โž• added Observer::accepts()
    • โž• added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
    • ๐Ÿ›  NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet(). The previously used separate namespace handling code has been removed. This improves performance if NamespacePrefixesStrategy is used (both the n amespaces and namespace-prefixes SAX2 features are used)
    • ๐Ÿš€ upgraded expat to 2.0 pre-release (2005-12-27) snapshot
    • โž• added TeeInputStream and TeeOutputStream classes
    • โž• added download sample for URIStreamOpener
    • ๐Ÿ“‡ renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
    • โž• added LineEndingConverter streams
    • โž• added FTPClientSession
    • ๐Ÿ“š code and documentation clean-up
    • โž• added DialogSocket class
    • โœ… reorganized HTTP test suites
    • โž• added FTPClientSession and FTPStreamFactory
    • โž• added DialogSocket class

    ๐Ÿš€ Release 0.96.1 (2005-12-28)

    • ๐Ÿ›  fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
    • โž• added samples for Net library
    • โž• added uptime() and startTime() to Util::Application
    • โž• added DateTimeFormatter::format() for Timespan
    • โž• added ErrorHandler class and better exception handling for threads
    • added poco_debugger() and poco_debugger_msg() macros
    • โž• added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc we do not recommend using this for production purposes)
    • ๐Ÿ›  fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
    • ๐Ÿ›  fixed mac line endings in a few files
    • โž• added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances.
    • โž• added buffer allocator argument to buffered stream buffer templates
    • โž• added buffer pools to HTTP to reduce memory fragmentation and to improve performance
    • โž• added Net to Windows build.cmd script
    • โž• added swap() to various classes that already support assignment
    • โž• added a null pointer check in DOMWriter::writeNode()
    • ๐Ÿ›  fixed documentation in BinaryWriter.h and BinaryReader.h
    • โž• added explicit support for network byte order to BinaryReader and BinaryWriter
    • โž• added basic support for FreeBSD (needs more testing)
    • BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
    • โž• added support for uppercase output to HexBinaryEncoder.
    • โž• added MediaType class
    • โž• added QuotedPrintableEncoder and QuotedPrintableDecoder classes
    • ๐Ÿ“‡ renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
    • AttachmentSource::filename() now returns const string&
    • โž• added StringAttachmentSource
    • ๐Ÿ’… replaced old-style C casts with C++ casts in NetworkInterface.cpp
    • ๐Ÿš‘ MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
    • ๐Ÿ›  fixed a problem with STLport 5.0 when compiling StreamTokenizer
    • HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
    • ๐Ÿ›  fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
    • ๐Ÿ›  fixed a handle leak in WinTestRunner

    ๐Ÿš€ Release 0.95.4 (2005-11-07)

    • ๐Ÿ›  fixed #1348006 and #1348005

    ๐Ÿš€ Release 0.95.3 (2005-10-28) [internal]

    • โšก๏ธ updated build scripts (patch #1339015)
    • โž• added support for AMD64 platforms (patch #1339015)
    • MultipartWriter creates its own boundary if an empty string is passed in as boundary
    • made MultipartWriter::createBoundary() public
    • ๐Ÿ›  fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
    • โž• added support for HTTP Basic authentication
    • โž• added support for HTTP Cookies
    • โž• added support for HTML forms

    ๐Ÿš€ Release 0.95.2 (2005-10-22) [internal]

    • ๐Ÿ›  fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
    • โž• added HTTPServer & friends
    • โž• added hasIdleThreads() method to NotificationQueue
    • โž• added TCPServer and friend
    • โž• added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
    • ๐Ÿ›  fixed documentation bugs (Mutex.h, ClassLoader.h)

    Relesae 0.95.1 (2005-10-15) [internal]

    • Tasks can now throw custom notifications (contributed by Alex Fabijanic)
    • ๐Ÿ“‡ renamed URIFileStreamFactory to FileStreamFactory
    • โž• added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
    • โž• added new exception classes
    • ๐Ÿ›  fixed some documentation
    • โž• added basic checks when reading a MessageHeader from a stream
    • โž• added HTTP classes (testsuite still incomplete)
    • โž• added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
    • โž• added Timespan::useconds()
    • โž• added ClassLoader::isLibraryLoaded()
    • Socket classes use Timespan::useconds() to fill struct timeval
    • โž• added DatagramSocket, MulticastSocket and NetworkInterface classes
    • โž• added socket classes and related basic stuff
    • โž• added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
    • ๐Ÿ›  fixed a potential MT issue in Base64Decoder
    • code beautifying in [Un]BufferedStreamBuf
    • more improvements to ClassLoader
    • code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)

    ๐Ÿš€ Release 0.94.1 (2005-09-30) [internal]

    • โž• added MetaSingleton (based on a contribution by Alex Fabijanic)
    • โž• added ClassLoader::create()
    • โž• added ClassLoader::instance()
    • code clean-ups in FileChannel and related classes
    • โž• added SimpleFileChannel
    • RotateAtTimeStrategy: ::getNextRollover() rewritten (buggy)
    • DateTime microseconds assert corrected asserts in computeGregorian() (except for year - see comment in computeGregorian()) milliseconds calculation modified in computeGregorian() microseconds assigned in computeGregorian() normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
    • LocalDateTime: added timestamp() method
    • FileChannel: added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy) ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are reinvoked to reflect the change)
    • ๐Ÿ‘ FileChannel: added support for archived file compression and archived file purging
    • โœ… FileChannel tests modified
    • โœ… FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
    • Message: added thread id field
    • PatternFormatter: added %I specifier for thread id
    • ThreadPool: PooledThread can be assigned a name
    • TaskManager: task name is reflected in thread name
    • ๐Ÿ›  fixed LocalDateTime::operator - (const Timespan&) [#0000004]
    • upon startup all loggers' channels are set to a console channel
    • ๐Ÿ‘Œ improved search for application configuration files (see loadConfiguration()).
    • โž• added Glob class (fixes #1249700)
    • โฌ†๏ธ upgraded to zlib 1.2.3 (fixes #1261712)
    • โž• added Logger::dump()
    • ๐Ÿ›  fixed a wrong condition in Logger::log(const Message&)
    • Path::find() now also works with relative paths in addition to plain file names
    • โž• added Path(const Path&, const Path&) constructor
    • โž• added SharedPtr template
    • โž• added Path::tryParse()
    • ๐Ÿ“œ SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)

    ๐Ÿš€ Release 0.93.1 (2005-08-01)

    ๐Ÿ›  This release contains various new features, improvements and bugfixes:

    • ๐Ÿ›  bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can be found (and thus no MAC address can be obtained)
    • โž• added UUIDGenerator::createOne() method
    • โž• added error handling to UUID sample application
    • โž• added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
    • โž• added LocalDateTime class
    • โž• added support for LocalDateTime to DateTimeParser and DateTimeFormatter
    • โž• added enqueueUrgentNotification() to NotificationQueue
    • โž• added support for timezone specifiers (%z, %Z) to PatternFormatter
    • โž• added [] operator and count() to StringTokenizer
    • โž• added elapsed() and isElapsed() to Timestamp
    • โž• added tzd() to Timezone
    • โž• added WinRegistryKey and WinService classes (Windows only)
    • โž• added index operator and count() to StringTokenizer
    • โž• added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
    • ๐Ÿ‘Œ support for Mac OS X 10.4/gcc 4.0.0
    • โž• added NamedMutex and NamedEvent
    • โž• added Process::kill()
    • โž• added NoPermissionException
    • โž• added Task and TaskManager classes
    • โž• added ServerApplication class
    • ๐Ÿ›  bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
    • ๐Ÿ›  bugfix: File::createDirectories did not work for hierarchies deeper than three
    • โž• added Util::FilesystemConfiguration
    • ๐ŸŒฒ documented logging policy: log() must open channel if it hasn't been opened yet
    • ๐ŸŒฒ FileChannel::log() opens channel if necessary
    • the application reference passed to initialize() and reinitialize() is no longer const
    • ๐Ÿ‘Œ improved application logging initialization
    • ๐Ÿ›  fixed a problem with configuration view and property placeholders
    • ๐Ÿ›  fixed Util build configuration for Visual Studio
    • ๐Ÿ‘Œ improved application samples
    • ๐Ÿ›  fixed documentation for Semaphore class

    ๐Ÿš€ Release 0.92.1 (2005-05-09)

    ๐Ÿš€ This release introduces the Util library that provides support for ๐Ÿ”ง configuration file parsing (different file formats), command line ๐Ÿ”ง argument processing, logging configuration and a framework for ๐Ÿ’ป command line/server applications. There have also been various changes to the Foundation library:

    • a new RefCountedObject class that acts as a base class for various classes that use reference counting
    • some missing members have been added to the AutoPtr template
    • ๐Ÿ›  various improvements and bugfixes to the Logging framework, as well as new LoggingFactory and LoggingRegistry classses, and a NullChannel class
    • ๐Ÿšฆ the SignalHandler class (Unix platforms only)
    • ObjectFactory and DynamicFactory template classes
    • the Path::find method for searching a file in a list of directories
    • ๐Ÿ‘ป various new Exception classes

    ๐Ÿš€ Release 0.91.4 (2005-04-11)

    ๐Ÿš€ This is mainly a maintenance release that adds support for QNX Neutrino ๐Ÿ›  and OpenVMS. There are also minor bugfixes and improvements.

    ๐Ÿ‘ท The Unix build system has been modified to work on QNX Neutrino. ๐Ÿ‘ท The OpenVMS build system has been fixed and works now. Some missing #include's have been added for QNX Neutrino. ๐Ÿ‘ Foundation/String.h: icompare now supports comparison with const char*; the classic C version of isspace() has been used in a few places instead of the ๐Ÿ›  C++ version, this has been fixed. ๐Ÿ‘ป Foundation/Exception.h: IllegalStateException added.

    ๐Ÿš€ Release 0.91.3 (2005-03-19)

    ๐Ÿš€ This is a maintenance release that adds support for Solaris/Sun Forte C++. No new features have been added.

    An implementation of FPEnvironment for Solaris has been included. โ†ช All stream classes have been modified to work around an initialization problem that surfaced with Sun's C++ compiler when using STLport. ๐Ÿš€ Source-code compatibility with the previous release is not affected. Various minor changes, mostly adding missing #include's for Solaris.

    ๐Ÿš€ Release 0.91.2 (2005-02-27)

    ๐Ÿ‘ท Minor improvements to the Unix build system. No actual changes in the libraries.

    ๐Ÿš€ Release 0.91.1 (2005-02-21)

    ๐Ÿš€ This is the first public release of the C++ Portable Components. ๐Ÿš€ The release does not contain all features planned for the later 1.0 release (the NET library is missing, for example), but is already quite usable. Please refer to the README file for more information and instructions for ๐Ÿ— building the libraries.