mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-15 03:21:09 +01:00
834 lines
41 KiB
Plaintext
834 lines
41 KiB
Plaintext
This is the changelog file for the POCO C++ Libraries.
|
|
|
|
Release 1.3.2 (2008-02-04)
|
|
==========================
|
|
|
|
Foundation, XML, Net, Util:
|
|
- added POCO_NO_SHAREDMEMORY to Config.h
|
|
- POCO_NO_WSTRING now really disables all wide string related calls
|
|
- added template specialization for string hashfunction (performance)
|
|
- XML parser performance improvements (SAX parser is now up to 40 % faster
|
|
- added parseMemoryNP() to XMLReader and friends
|
|
- URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
|
|
this enables support for redirects from http to https.
|
|
- added support for temporary redirects and useproxy return code
|
|
- added getBlocking() to Socket
|
|
- added File::isHidden()
|
|
- better WIN64 support (AMD64 and IA64 platforms are recognized)
|
|
- added support for timed lock operations to [Fast]Mutex
|
|
- SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
|
|
(see http://gcc.gnu.org/faq.html#dso)
|
|
- Poco::Timer threads can now run with a specified priority
|
|
- added testcase for SF# 1774351
|
|
- fixed SF# 1784772: Message::swap omits _tid mem
|
|
- fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
|
|
- fixed SF# 1804395: Constructor argument name wrong
|
|
- fixed SF# 1806807: XMLWriter::characters should ignore empty strings
|
|
- fixed SF# 1806994: property application.runAsService set too late
|
|
- fixed SF# 1828908: HTMLForm does not encode '+'
|
|
- fixed SF# 1831871: Windows configuration file line endings not correct.
|
|
- fixed SF# 1845545: TCP server hangs on shutdown
|
|
- fixed SF# 1846734: Option::validator() does not behave according to doc
|
|
- fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
|
|
- fixed SF# 1864832: HTTP server sendFile() uses incorrect date
|
|
- HTTPServerResponseImpl now always sets the Date header automatically
|
|
in the constructor.
|
|
- fixed SF# 1787667: DateTimeFormatter and time related classes
|
|
(also SF# 1800031: The wrong behavior of time related classes)
|
|
- fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
|
|
- fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
|
|
- fixed SF# 1834130: RunnableAdapter::operator= not returning a value
|
|
- fixed SF# 1873924: Add exception code to NetException
|
|
- fixed SF# 1873929: SMTPClientSession support for name in sender field
|
|
- logging performance improvements (PatternFormatter)
|
|
- fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
|
|
- CYGWIN build works again (most things work but Foundation testsuite still fails)
|
|
- new build configuration for Digi Embedded Linux (ARM9, uclibc)
|
|
- new build configuration for PowerPC Linux
|
|
|
|
Data:
|
|
- fixed SF# 1724388: ODBC Diagnostics
|
|
- fixed SF# 1804797: ODBC Statement multiple execution fails
|
|
- fixed SF# 1803435: SessionPool onJanitorTimer called too often?
|
|
- fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
|
|
- updated SQlite to 3.5.5
|
|
|
|
|
|
Release 1.3.1 (2007-08-08)
|
|
==========================
|
|
|
|
Foundation, XML, Net, Util:
|
|
- DynamicAny fixes for char conversions
|
|
- fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
|
|
- fixed SF patch# 1728912: crash in POCO on Solaris
|
|
- fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
|
|
- fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
|
|
- fixed SF# 1720733: Poco::SignalHandler bug
|
|
- fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
|
|
- fixed SF# 1718437: HashMap bug
|
|
- changed LinearHashTable iterator implementation. less templates -> good thing.
|
|
- fixed SF# 1733964: DynamicAny compile error
|
|
- UUIDGenerator: fixed infinite loop with non ethernet interfaces
|
|
- updated expat to 2.0.1
|
|
- fixed SF# 1730566: HTTP server throws exception
|
|
- Glob supports symbolic links (additional flag to control behavior)
|
|
- fixed a problem with non blocking connect in NetSSL_OpenSSL
|
|
(see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
|
|
- fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
|
|
- fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
|
|
- HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
|
|
- NetworkInterface (Windows): Loopback interface now has correct netmask;
|
|
interfaces that do not have an IP address assigned are no longer reported.
|
|
- Fixes for VC++ W4 warnings from EHL
|
|
- SharedMemory: first constructor has an additional "server" parameter
|
|
Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
|
|
- fixed SF# 1768231: MemoryPool constructor
|
|
|
|
Data:
|
|
- fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
|
|
- fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
|
|
- upgraded to SQLite 3.4.1
|
|
|
|
|
|
Release 1.3.0 (2007-05-07)
|
|
==========================
|
|
|
|
- added HashMap, HashSet classes
|
|
- the HashFunction class template has been changed in an incompatible
|
|
way. The member function formerly named hash() is now the function
|
|
call operator. If you have defined your own HashFunction classes,
|
|
you have to update your code. Sorry for the inconvenience.
|
|
- added Poco::Tuple
|
|
- added AbstractCache::getAllKeys(), improved performance of the get operation
|
|
- fixed AbstractCache::size() to do cache replacement before returning the size
|
|
- added additional match() method to RegularExpression and documented the fact that the simple
|
|
match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
|
|
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
|
|
- added operator ! to AutoPtr and SharedPtr
|
|
- Buffer uses std::size_t instead of int
|
|
- Exception::what() now returns exception name instead of message
|
|
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
|
|
- added Environment::get(name, defaultValue);
|
|
- Foundation.h now includes Config.h at the very beginning.
|
|
- added replace() and replaceInPlace() to Poco/String.h
|
|
- added AutoPtr::assign() and SharedPtr::assign()
|
|
- added operator () to AbstractEvent
|
|
- gcc Makefiles now strip release builds
|
|
- Void now has a == and != operator
|
|
- Base64Encoder and HexBinaryEncoder now support an unlimited line length
|
|
(no newlines written), by specifying a line length of 0
|
|
- NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
|
|
(Thanks to phireis@gmail.com for the suggestion)
|
|
- fixed SF# 1676830: Don't use -rpath in libraries
|
|
- fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
|
|
- fixed a warning in Hashtable
|
|
- HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
|
|
- added DateTime::makeUTC() and DateTime::makeLocal()
|
|
- added another constructor to LocalDateTime
|
|
- POCO_WIN32_UTF8 is ignored on non-Windows platforms
|
|
- fixed a timeout bug (with NetSSL) in HTTPSession
|
|
- AsyncChannel is automatically opened with first log()
|
|
- minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
|
|
- added File::canExecute() and File::setExecutable()
|
|
- added SharedMemory class to Foundation
|
|
- added FileStream, FileInputStream, FileOutputStream to Foundation
|
|
- added NodeAppender class to XML for faster DOM tree creation
|
|
- HTTPServerRequest and HTTPServerResponse are now abstract base classes,
|
|
actual functionality has moved into HTTPServerRequestImpl and
|
|
HTTPServerResponseImpl. This allows us to plug other HTTP servers
|
|
into POCO.
|
|
- added DynamicAny class to Foundation
|
|
- replaced std::fstream with Poco::FileStream across POCO.
|
|
- added Poco::Checksum class to Foundation.
|
|
- fixed SF# 1700811: conflict in threadpool
|
|
- bugfix: File::moveTo() does not work if the target is a directory
|
|
- File::copyTo() and File::moveTo() now copy/move directories recursively
|
|
- refactored NetworkInterface (now using pimpl idiom);
|
|
added broadcast address and netmask support
|
|
- fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
|
|
- fixed SF# 1655104: Enhance Poco::TextEncoding functionality
|
|
- added Poco::Condition class, implementing a POSIX-style condition variable
|
|
- fixed a bug in File::create() for Windows
|
|
- added poco_static_assert (imported from boost)
|
|
- added Thread::join(timeout) and Thread::tryJoin()
|
|
- ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
|
|
- POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
|
|
automatically defined in POCO_WIN32_UTF8 is defined)
|
|
- PCRE: upgraded to PCRE version 7.1
|
|
- fixed SF# 1682162: Suggestion on thread priority
|
|
- fixed SF# 1613460: MSVC/STLPort warnings
|
|
- fixed SF# 1709358: Format double percent std::String bug
|
|
- added WindowsConsoleChannel class to Foundation
|
|
- added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
|
|
- fixed SF# 1708552: Failed to build on arm and powerpc
|
|
- fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
|
|
- fixed SF# 1710053: LogStream proposal
|
|
- fixed a bug involving empty root directories in Windows DirectoryIterator implementation
|
|
(see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
|
|
- robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
|
|
case something goes while invoking the method
|
|
- made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
|
|
C ones (<string.h>). Also, use C library functions in std namespace.
|
|
- added Unicode and UTF8String for improved Unicode support.
|
|
The Unicode class can be used to obtain the Unicode properties of a character.
|
|
The UTF8 class provides case insensitive comparison and case conversion
|
|
for UTF-8 encoded strings.
|
|
- added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
|
|
See the Poco/UnWindows.h header file for a rationale and explanations.
|
|
- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
|
|
- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
|
|
with other platforms.
|
|
- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
|
|
the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
|
|
To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
|
|
(see Poco/Foundation.h and Poco/Config.h).
|
|
- The Visual Studio project files for the POCO libraries now include configurations
|
|
for building static libraries.
|
|
|
|
|
|
Release 1.2.9 (2007-02-26)
|
|
==========================
|
|
|
|
- fixed a formatting problem in Util::HelpFormatter
|
|
- HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
|
|
- improved network performance of ChunkedOutputStream: chunk size and chunk data
|
|
are sent in one network packet if possible
|
|
- fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
|
|
(thanks to Sergey N. Yatskevich for this and other fixes)
|
|
- fixed SF# 1655049: Fix discrepancy of a code to the description
|
|
- fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
|
|
- fixed SF# 1629095: POCO_WIN32_UTF8 problem
|
|
There is a new function Path::transcode() that can be used to convert a path (or any other string)
|
|
from UTF-8 to the current Windows code page. This string can the be passed as a filename
|
|
to an fstream or fopen(). This function only does the conversion on Windows,
|
|
and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
|
|
- fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
|
|
- HTTPServer network performance improvement: responses that fit into a single network packet
|
|
sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
|
|
sent in only one packet.
|
|
- added HTTPServerResponse::sendBuffer()
|
|
- HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
|
|
- HTTPServer now sends an Internal Server Error response if the request handler throws an
|
|
exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
|
|
- fixed a bug in HTTP persistent connection handling
|
|
(server does not send Connection: close when it reaches connection maximum)
|
|
- HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
|
|
(thus improving interoperability with certain web servers)
|
|
- integrated Environment.cpp from Main (missing get(var, default))
|
|
- added missing AutoPtr include to Util/Application
|
|
(and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
|
|
- fixed SF# 1635420: Per Regents of the University of Calfornia letter,
|
|
remove advertising from BSD licensed parts
|
|
- fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning
|
|
|
|
|
|
Release 1.2.8 (2007-01-04)
|
|
==========================
|
|
|
|
- fixed SF# 1613906: Util/Application.h and GCC 3.3
|
|
- fixed a byte order issue (failed test) in IPv6 address formatting
|
|
- fixed SF# 1626640: Poco::Net::SocketReactor bug
|
|
- fixed client side chunked transfer encoding handling
|
|
- fixed client side persistent connection handling
|
|
- fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
|
|
- improved HTTP server exception text
|
|
- fixed SF# 1616294: KeepAlive HTTPServerSession patch
|
|
- fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
|
|
- fixed SF# 1619282: PurgeStrategy bug fix
|
|
- fixed SF# 1620855: Format problem
|
|
there is a new format specifier %z for std::size_t, as well as a new
|
|
flag ? for %d, %i, %o, %x meaning any signed or unsigned integer
|
|
|
|
|
|
Release 1.2.7 (2006-12-07)
|
|
==========================
|
|
|
|
- Poco::File: fixed root directory handling
|
|
- fixed UUIDGenerator documentation
|
|
- clarified Application::setUnixOptions() documentation
|
|
- fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
|
|
- fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
|
|
- fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
|
|
- fixed SF# 1598601: Message::op= leaks
|
|
- fixed SF# 1605960: PatternFormatter crashes on custom property
|
|
- fixed SF# 1605950: Memory leak in Logger sample code
|
|
- fixed SF# 1591635: Copy Paste Error in sample code
|
|
- fixed SF# 1591512: SMTPClientSession response stream
|
|
- fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
|
|
- SF Patch # 1599848 ] VS 2005 Util build fails
|
|
- Logger::dump() now uses std::size_t instead of int for buffer size
|
|
- LayeredConfiguration now supports a priority value for each configuration.
|
|
Also, it's possible to specify for each configuration added whether it
|
|
should be writeable.
|
|
- ServerApplication: cd to root directory only if running as a daemon
|
|
- added Message::swap()
|
|
- improvements to build system:
|
|
global Makefile has correct dependencies for samples
|
|
on Windows, samples build after libraries are ready
|
|
configure supports --no-wstring and --no-fpenvironment flags
|
|
build system supports POCO_FLAGS environment variable for compiler flags
|
|
- RemoteGen: fixed error handling for write protected files (SystemException)
|
|
fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
|
|
case-insensitive comparison added
|
|
|
|
|
|
Release 1.2.6 (2006-11-19)
|
|
==========================
|
|
|
|
- added additional match() method to RegularExpression and documented the fact that the simple
|
|
match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
|
|
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
|
|
- added operator ! to AutoPtr and SharedPtr
|
|
- Buffer uses std::size_t instead of int
|
|
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
|
|
- Foundation.h now includes Config.h at the very beginning.
|
|
- added AutoPtr::assign() and SharedPtr::assign()
|
|
- added operator () to AbstractEvent
|
|
- gcc Makefiles now strip release builds
|
|
- documentation improvements
|
|
|
|
|
|
Release 1.2.5 (2006-10-23)
|
|
==========================
|
|
|
|
- Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
|
|
This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
|
|
- improved options handling: better handling of (non) ambiguities.
|
|
If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
|
|
- added check for duplicate option definition
|
|
- ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
|
|
(caused by an thread unsafe string assignment corrupting the heap...)
|
|
(SF# 1575315)
|
|
- improved ThreadPool performance
|
|
- XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
|
|
- fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
|
|
- got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
|
|
prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
|
|
- improvements to Logger and LoggingConfigurator:
|
|
* added Logger::unsafeGet()
|
|
* added Logger::setProperty(loggerName, propertyName, value)
|
|
* LoggingConfigurator now correctly (re)configures existing Loggers
|
|
(prior to this change, if a Logger named "a.b.c" existed before
|
|
the LoggingConfigurator started its work, and the LoggingConfigurator
|
|
configured a Logger named "a.b", then "a.b.c" would not inherit
|
|
the new configuration).
|
|
- improvements to SplitterChannel and EventLogChannel configuration
|
|
- improved LoggingRegistry exception messages
|
|
- MessageHeader::read() is more liberal with malformed message headers.
|
|
This fixes problems with certain network cameras sending malformed HTTP headers.
|
|
|
|
|
|
Release 1.2.4 (2006-10-02)
|
|
==========================
|
|
|
|
- some code beautifying and improvements to comments
|
|
- DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
|
|
- fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
|
|
- fixed SF #1567364: POCO_APP_MAIN
|
|
- added Document::getElementById() (two-argument) and getElementByIdNS()
|
|
- added another test for DOMParser
|
|
- added AutoPtr::isNull() (to be consistent with SharedPtr)
|
|
- this release again compiles on PA-RISC HP-UX systems with aCC
|
|
- added CMAKE support files contributed by Andrew J. P. Maclean
|
|
|
|
|
|
Release 1.2.3 (2006-09-14)
|
|
==========================
|
|
|
|
- configure script now checks if (auto)selected configuration is supported
|
|
- fixed SF #1552904: NamedEvent bug?
|
|
- fixed SF #1552787: POCO not handling EINTR
|
|
- fixed SF #1552846: Random::~Random uses scalar delete
|
|
- fixed SF #1552987: TLSSlot should explicitly default-construct _value
|
|
- IPAddress no longer accepts an empty address string
|
|
- split up Observer.h into AbstractObserver.h and Observer.h
|
|
- added NObserver class template which supports an AutoPtr
|
|
argument for the notification callback
|
|
- changed EchoServer sample to use NObserver
|
|
- some Windows-specific files were missing in the tarballs
|
|
|
|
|
|
Release 1.2.2 (2006-09-01)
|
|
==========================
|
|
|
|
- fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
|
|
- fixed a memory leak in EchoServer sample
|
|
- fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
|
|
- fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
|
|
- MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
|
|
- added additional test case (Unix-style line ends) to MultipartReaderTest
|
|
|
|
|
|
Release 1.2.1 (2006-08-29)
|
|
==========================
|
|
|
|
- fixed Config.h header (no more #undefs)
|
|
|
|
Release 1.2.0 (2006-08-29)
|
|
==========================
|
|
|
|
- DateTime fixes: Julian Day is no longer stored internally.
|
|
Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day.
|
|
The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have)
|
|
This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
|
|
- The main Makefile now has correct dependencies
|
|
- updated poco-doc.pl with latest version by Caleb Epstein
|
|
- fixed SF #1542722: InflatingInputStream: buffer error
|
|
- improved Windows UTF-8 support
|
|
- added Logger::names()
|
|
- added configure script and make install target
|
|
- XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
|
|
- improvements to build system: support builds outside of source tree
|
|
- added header doc conversion tool contributed by Caleb Epstein
|
|
- fixed SF #1542618 (build/config/Linux patch)
|
|
- bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
|
|
- fixed SF #1542247 (Compiler warning from OptionCallback)
|
|
- fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
|
|
- added Application::stopOptionsProcessing()
|
|
- updated samples
|
|
- Util::Application command line handling now supports:
|
|
* argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
|
|
* binding of argument values to config properties (Option::binding())
|
|
* callbacks for arguments (Option::callback())
|
|
* checking of required parameters
|
|
- changed header file locations:
|
|
Foundation headers are now in Poco (#include "Poco/Foundation.h")
|
|
XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h")
|
|
Util headers are now in Poco/Util (#include "Poco/Util/Util.h")
|
|
etc.
|
|
Unfortunately, this change will break existing code. However, fixing the code is
|
|
a matter of a few global search/replace operations and can be done quickly.
|
|
On the plus side, POCO is now a much better citizen when used with other
|
|
libraries.
|
|
- changed namespaces:
|
|
Foundation is now Poco
|
|
XML is now Poco::XML
|
|
Util is now Poco::Util
|
|
Net is now Poco::Net
|
|
- removed namespace macros
|
|
- fixed some warnings reported by gcc -Wall -Wextra
|
|
- fixed AutoPtr and LayeredConfiguration documentation
|
|
- improved StreamSocket::receiveBytes() doc
|
|
- added Pipe and PipeStream classes
|
|
- added support for I/O redirection (pipes) to Process::launch()
|
|
- added LogStream class (ostream interface to Logger)
|
|
- improved Makefiles (no more double-building if clean all is specified)
|
|
- added CppUnit and DateTime testsuite contributions by Andrew Marlow
|
|
- improved Cygwin and minimal MinGW support
|
|
- FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
|
|
- POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
|
|
- added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
|
|
- added File::isLink()
|
|
- bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
|
|
- added Void class (useful as argument to ActiveMethod)
|
|
- ActiveResult now supports exceptions
|
|
- bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
|
|
- added ActiveDispatcher class
|
|
- added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
|
|
- ActiveRunnable moved to its own header file
|
|
- ThreadPool: added startWithPriority(), which allows for running threads with a different priority
|
|
- added error handling to dir sample
|
|
- added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET)
|
|
- clarified HTMLForm documentation
|
|
- HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
|
|
- NameValueCollection: added get(name, defaultValue)
|
|
- added HTTPFormServer sample
|
|
- added Foundation::HashTable and SimpleHashTable
|
|
- added Net::HTTPSessionFactory
|
|
- improvements to AutoPtr and SharedPtr
|
|
- improvements to namespaces handling in XMLWriter
|
|
- Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
|
|
- added DateTime::isValid()
|
|
- added Exception::rethrow() (virtual, must be overridden by all subclasses)
|
|
- Timer can now use a user-supplied ThreadPool
|
|
- added rethrow() to exception classes
|
|
- Net: made some constructors explicit
|
|
- Net: added SocketAddress constructor to HTTPClientSession
|
|
- Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
|
|
- Net: added single string argument constructor to SocketAddress.
|
|
- Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
|
|
- Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them.
|
|
- Net: added HTTPLoadTest sample
|
|
- fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
|
|
- bugfix: log file purge intervals given in months did not work, due to a stupid typo
|
|
- added RawSocket and ICMP classes
|
|
- UUID: fixed a doc formatting bug
|
|
- NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
|
|
- made Exception::message() and Exception::nested() inline
|
|
- added Net::UnsupportedRedirectException
|
|
- HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
|
|
- HTTP: fixed bad 100 Continue handling in client and server code
|
|
- added CONTRIBUTORS file
|
|
|
|
|
|
Release 1.1.2 (2006-07-07)
|
|
==========================
|
|
|
|
- Changed license to Boost license
|
|
- DBlite and NetSSL have been removed from the Boost-licensed release.
|
|
Please contact Applied Informatics (info@appinf.com) if you're interested in them.
|
|
|
|
|
|
Release 1.1.1 (2006-04-03)
|
|
==========================
|
|
|
|
- NetSSL_OpenSSL now supports separate certificate verification
|
|
settings for client and server.
|
|
- fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
|
|
- TCPServer no longer crashes if accept() fails
|
|
|
|
|
|
Release 1.1.0 (2006-03-23)
|
|
==========================
|
|
|
|
- events no longer require awkward += new syntax
|
|
- source code and documentation cleanups
|
|
- basic support for new compilers and platforms
|
|
|
|
|
|
Release 1.1b2 (2006-03-04)
|
|
==========================
|
|
|
|
- made NetSSL threadsafe (added locking callbacks for OpenSSL)
|
|
- improved OpenSSL initialization (random generator seeding)
|
|
- various changes to improve compatibility with various platforms
|
|
|
|
|
|
Release 1.1b1 (2006-03-03)
|
|
==========================
|
|
|
|
- New Events package in Foundation. The package supports C#-style event handling
|
|
- New Cache package in Foundation: a templates-based caching framework
|
|
- added Any class to Foundation
|
|
- added DBLite library
|
|
- fixed a memory leak with layered configurations in the application
|
|
- made POCO_DLL the default (unless POCO_STATIC is #defined)
|
|
It is no longer necessary to specify POCO_DLL in projects that use Poco
|
|
(SourceForge Patch #1408231 and Feature Request #1407575).
|
|
- added Buffer template class to Foundation
|
|
- added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
|
|
- added Path::resolve()
|
|
- added Windows Unicode support. This calls the Unicode variant of the Windows API functions.
|
|
For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
|
|
- added StreamCopier::copyToString()
|
|
- added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths.
|
|
This fixes SourceForge Bug #1409064 and Feature Request #1409062.
|
|
- added NodeIterator::currentNodeNP() to XML library
|
|
- added some sanity checks to UTF8Encoding::convert()
|
|
- added NetSSL - SSL support for Net library, based on OpenSSL
|
|
- console output of processes launched with Process::launch() is now visible
|
|
|
|
|
|
Release 1.0.0 (2006-01-19)
|
|
==========================
|
|
|
|
- removed unnecessary console output from ProcessTest
|
|
- documentation fixes
|
|
|
|
|
|
Release 1.0b2 (2006-01-16)
|
|
==========================
|
|
|
|
- added ProcessHandle class
|
|
- Process::launch() now returns a ProcessHandle instead of a process ID.
|
|
This fixes a potential problem on Windows with Process::wait() when
|
|
the process terminates before wait() is called.
|
|
- added SplitterChannel::close()
|
|
- added Logger::destroy()
|
|
- added POP3ClientSession::deleteMessage()
|
|
- added test for Process::launch()
|
|
- documentation fixes
|
|
|
|
|
|
Release 1.0b1 (2006-01-09)
|
|
==========================
|
|
|
|
- improved recognition of Windows paths in Path::parseGuess()
|
|
- added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
|
|
- improvememts to StreamTokenizer and Token; fixed documentation
|
|
- added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
|
|
- improved exception/error reporting in cppunit
|
|
- added POP3ClientSession
|
|
- added Process::launch() and Process::wait()
|
|
- added Mail sample
|
|
- added MailStream and SMTPClientSession classes
|
|
- renamed some methods in DialogSocket to make them more general
|
|
- NullPartHandler has moved out of HTMLForm.cpp into a separate file
|
|
- Base64Encoder now always writes \r\n line ends
|
|
- MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
|
|
- bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
|
|
- added MailMessage and MailRecipient classes
|
|
- added text encoding support for Windows-1252 codepage
|
|
|
|
|
|
Release 1.0a1 (2006-01-03) [internal]
|
|
=====================================
|
|
|
|
- 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++ <locale> 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.
|
|
|
|
|
|
--
|
|
$Id: //poco/1.3/dist/CHANGELOG#17 $
|