2014-01-30 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNumber.h: Fix typo

2014-01-30  Marcus Mueller <znek@mulle-kybernetik.com>

	* Bundles/DKUserNotification:
	Implementation of the DBus-based Desktop Notifications
	Specification on top of Implementation of 
	NSUserNotificationCenter.

2014-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKBoxingUtils.m
	* Source/DKPort.m:
	A few consistency fixes for loop iterator varaibles
	(Patch by Marcus Müller)

2014-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m
	* Source/DKNotificationCenter.m
	* Headers/DKCommon.h
	* GNUmakefile:

	Fixes for various build problems. (Reported by Marcus Müller)

2014-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.m: Fix off-by-one error when unmarshalling
	multiple return values.

2014-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document how
	we pass along multiple return values from
	D-Bus methods.

2014-01-15 Niels Grewe <niels.grewe@halbordnung.de>
	* Headers/DKNumber.h
	* Source/DKNumber.m
	* Source/DKNumberTemplate.h:
	Implement NSNumber subclasses that behave predictably
	on D-Bus, because with variant-typed arguments, the
	other side might have assumptions about their size
	that it didn't tell us about, so we can't rely on them
	to translate properly.
	* Headers/DKVariant.h
	* Source/DKVariant.m:
	Proxy class to explicitly mark objects as to be
	passed inside a variant.
	* Source/DKArgument.m: Modify argument passing logic
	to properly recognise explicitly typed numbers, booleans
	and variants.
	* Headers/DBusKit.h
	* Documentation/GNUmakefile
	* Source/GNUmakefile:
	Connect new classes to the build.
	* Bundles/DBusMenu/DKMenuProxy.h
	* Bundles/DBusMenu/DKMenuProxy.m:
	Fix D-Bus menu implementation to pass arguments in the
	proper size.

2014-01-14 Niels Grewe <niels.grewe@halbordnung.de>
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m
	* Source/DKSignal.h
	* Source/DKSignal.m
	* Source/DKSignalEmission.h
	* Source/DKSignalEmission.m
	* Source/GNUmakefile:
	Finish support sending notifications to D-Bus.
	* Source/DKPort.m:
	If a port is local, cache it and always return
	the shared instance. This not only improves performane,
	but also fixes a bug where multiple subtrees could be
	exposed to the bus without knowing about each other.
	* Source/DKOutgoingProxy.m: Improve debugging
	* Bundles/DBusMenu/DKMenuProxy.h
	* Bundles/DBusMenu/DKMenuProxy.m
	* Bundles/DBusMenu/DKMenuRegistry.m:
	Propagate changes to the menu layout.
	* Examples/HelloWorldService/main.m
	* Examples/HelloWorldService/test.xml:
	Demonstrate how to send signals to the bus.

2014-01-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodReturn.m: Fix a glaring memory leak.

2014-01-13 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/GNUmakefile
	* Headers/DBusKit.h
	* Headers/DKCommon.h:
	Add a header for shared public definitions, and
	declare a marco that turns on __attribute__((deprecated))
	when the compiler (clang or GCC >= 4.6) supports it.
	* Headers/DKProxy.h: Fix typo.
	* Source/DKNotificationCenter.m
	* Headers/DKNotificationCenter.h:
	Deprecate old vararg style method because it was using
	a mixture of C-style arguments and varags in a slightly
	confusing way. Introduce a new method to replace it
	that accepts the filter specification as an NSDictionary.
	* Source/DKSignal.[hm]: Allow converting between mapped
	notification keys and D-Bus signal argument indices.
	* Source/type_encoding_cases.h: Document license in the
	file so that people don't have to look at the README.

2014-01-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m:
	Add support for NSData conversion in the libclang
	introspection generator.

2014-01-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/GlobalMenu/GlobalMenuTheme.m:
	Fall back to in-window menus if the menu server is not
	available.	

2014-01-08 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m
	* Source/DKMethod.m
	* Source/DKMessage.m
	* Source/DKPropertyMethod.m
	* Source/DKPort.m:
	String format safety improvements.
	* Source/DKArgument.m: Fix bug in NSData unmarshalling.
	* Tests/TestDKArgument.m: Testcase for NSData boxing/unboxing
	of byte arrays.
	* Tests/TestDKProxy.m:
	Tweak system port test case.

2014-01-06 Niels Grewe <niels.grewe@halbordnung.de>
	
	* README: Regenerate
	* Source/DKEndpointManager.m
	* Source/DKInterface.m:
	Format string safety improvements.
	* Source/DKSignal.h
	* Source/DKSignal.m:
	Add method to marshall the contents of a notification's 
	user info dictionary into D-Bus wire format.


2014-01-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Bundles/DBusMenu/DKMenuRegistry.m:
	Use the standard -windowDevice: method instead of
	the custom one.

2014-01-04 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Decode byte arrays as NSData
	if the introspection data says we should.

2014-01-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKStruct.h
	* Headers/DBusKit.h
	* Source/DKStruct.m:
	Helper class for structure-like arrays. This is needed 
	only for variant typed arguments because these don't
	carry the introspection information that lets us decide
	whether something is an array or a D-Bus structure
	* Source/DKArgument.m:
	Support explicit structure typed arguments and start
	working on support for converting from NSData to D-Bus
	byte arrays.

2013-12-30 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.m 
	* Source/DKMethodReturn.m:
	Fix unmarshalling of arguments in an incoming D-Bus method call.

2013-12-30 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Improve validity checking on object
	paths.

2013-07-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Add missing include. (Reported by Philippe Roussell)
	Implement some stuff missing for proper D-Bus facing objects.
	* Source/DKObjectPathNode.h: Expose another method for DKOutgoingProxy to use.
	* Source/DKPort.m: Add some debugging for object path name handling.
	* Examples/HelloWorldService/main.m: Tweak export.
	* Examples/HelloWorldService/test.xml: Add test interface. 

2013-07-02 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Expose some DKProxy internals for subclassing.
	* Source/DKOutgoingProxy.m: Allow introspection data to be added from a
	file (not a public API, though)

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check clang_Cursor_getArgument() since it's missing in earlier libclang versions
	* configure: Regenerate
	* ChangeLog: Reformat a few inconsistencies

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Implement -handleDBusMessage: on the outgoing proxy.

2013-05-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Replace deprecated self->isa access with object_getClass()
	* Documentation/Introduction.texi: Fix typo

2012-11-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Replace incorrect NSDebugMLog with NSDebugFLog.
	Reported by Philippe Roussell.

2012-09-23 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKNotificationCenter.m:
	Deal with clang warning about casting SEL to uintptr_t.

2012-08-22 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check for libclang.
	* configure: Regenerate.
	* Documentation/install.texi: Document optional libclang
	requirement.
	* INSTALL: Regenerate
	* Source/config.h.in: Macro for libclang check.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Add D-Bus type derivation based on libclang. Fix potential index out of
	bounds bug in selector name mangling.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add methods for generating arguments from CXTypes.
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Add methods for generating methods from CXCursors.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add methods for generating interfaces by runtime-inspecting protocols 
	or classes.
	* Source/GNUmakefile: Explicitly link Objective-C and Foundation libs.
	* Tests/TestDKInterface.m:
	Tests for interface generation from introspection data.

	Further work on introspection data generation.

2012-08-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m:
	Fix typos.

2012-08-17 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Add a second check for dbus/dbus.h just in case
	that pkg-config returns nonesense.
	* configure: Regenerate
	* Source/DKObjectPathNode.m: Import DKEndpoint header.

	Minor build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Properly set compiler flags for C99 and detect
	the runtime flavour.
	* configure: Regenerate.
	* config.make.in: Add C99 flags when needed.
	* Source/config.h.in: Macros for choosing typed selector
	introspection method.
	* Source/DKProxy.m
	* Source/DKOutgoingProxy.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m:
	GCC compatibility tweaks
	* Tools/GNUmakefile: Explicitly link against libdbus.

	Build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Disable -Wdeclaration-after-statement
	* configure: Regenerate
	* Source/DKArgument.m: Move declaration before statement
	(spotted by Philippe Roussel)

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Temporarily enable -Wno-deprecated-declarations
	for clang; check whether we need to include objc/encoding.h.
	* configure: Regenerate.
	* Headers/DKNotificationCenter.h: Add deprecation notices for
	methods using features that are going away. (New API still
	missing).
	* Source/config.h.in: Add macro for objc/encoding.h check.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add convenience method for generating arguments from
	Objective-C type encodings.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Implement conversion from selectors to method names; fix type
	mapping for id (it was incorrectly mapped to
	DBUS_TYPE_OBJECT_PATH, but should be mapped to
	DBUS_TYPE_VARIANT).
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Implement generation of methods from runtime introspection
	data.
	* Source/DKMethodReturn.m: Change method order.
	* Source/DKObjectPathNode.m: Fix memory leak.
	* Source/DKOutgoingProxy.m: Add some method stubs.
	* Source/DKPort.m: Fix bug where the root object was lead to
	believe that it was its own child.
	* Test/TestDKMethod.m: Add tests for selector mangling and
	method generation from runtime data structures.

2012-05-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Add DKMethodReturn.m
	* Source/DKProxy+Private.h
	* Source/DKProxy.m: 
	Tweak generation of introspection data.
	* Source/DKMethodReturn.h
	* Source/DKMethodReturn.m:
	Implement replies to method calls.
	* Source/DKMessage.m: Add some debugging.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Adopt DKExportableObjectPathNode protocol.
	* Source/DKEndpointManager.m: Fix incorrect use of libdbus
	APIs.
	* Source/DKPort+Private.h
	* Source/DKPort.m:
	Register exported objects with the D-Bus daemon.
	* Source/DKObjectPathNode.h: Another revision of the object
	path protocol; add subprotocol for exportable nodes.
	* Source/DKObjectPathNode.m: Implement revised object path
	protocol; tweak generation of introspection data; Implement
	handling of method calls from D-Bus (object path nodes do not
	represent any local object and only respond to introspection
	requests.
	* Tools/dk_make_protocol.m: Follow up changes for revised 
	object path protocol.
	* Tests/TestDKPort.m: Revoke D-Bus object registrations after
	the tests.
	* Examples/HelloWorldService: Initial scaffolding for an example
	service that vends objects to D-Bus.

	First batch of object vending changes. We can now succesfully 
	export arbitrary object graphs to D-Bus and they can (partially)
	be introspected by other clients on the bus. Exported objects 
	don't respond to message sends yet, though.

2012-04-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix marshalling of vendable local objects.
	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Implement revised object path protocol and proper -isKindOfClass:
	method.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Revise DKObjectPath protocol and implement special root object path
	subclass. Fix name generation for OPNs.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Stub out some methods.
	* Headers/DKPort.h
	* Source/DKPort+Private.h
	* Source/DKPort.m: Implement more of the object path handling and 
	add a private header to expose some of it.
	* Tools/dk_make_protocol.m: Adapt to new introspectable interface.
	* Tests/TestDKPort.m: Tests for object path handling.
	* Tests/TestDKProperty.m: More flexible test for XML serialization.

	More work on vending objects to D-Bus.

2012-04-21 Phillipe Roussel <p.o.roussel@free.fr>

	* Source/NSConnection+DBus.m: Move declarations before statements.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/DKOutgoingProxy.h
	* Headers/DKPort.h
	* Source/DKPort.m
	* Source/NSConnection+DBus.m:
	Preliminary changes for vending objects.
	* Source/DKArgument.m: Remove redundant conditional branch.
	
	Start work on scaffolding for vending objects to D-Bus.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Fix declaration of queueCount ivar.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/NSConnection+DBus.m: Replace -rootProxy in NSConnection with
	the implementation from our category.
	* Tests/TestDKProxy.m: Test to verify that we are not breaking
	-rootProxy for standard DO.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix emission of argument names
	* Source/DKMethod.m: Fix bug in specifying argument directions.
	* Source/DKObjectPathNode.m: Actually comply to the D-Bus spec when 
	writing introspection data.
	* Source/DKProxy.m: Implement XML introspection data generation
	* Source/DKProxy+Private.h: Declare -XMLNode on DKProxy
	* Tests/TestDKArgument.m
	* Tests/TestDKInterface.m
	* Tests/TestDKMethod.m
	* Tests/TestDKProxy.m:
	Make tests more robust.

2012-01-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKInterface.m
	* Source/DKSignal.m:
	Implement XML introspection data generation.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKInterface.m: Add some tests for interfaces.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKSignal.h
	* Source/DKSignal.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Use constants for argument directions consistently.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement generation of XML introspection data.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKProperty.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Declare -XMLNode on all introspection nodes.
	* Source/DKMethod.m: Implement generation of MXL introspection data.
	* Tests/TestDKMethod.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for annotated XML introspection data.
	
2012-01-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for XML generation of arguments.
	* Source/DKArgument.h
	* Source/DKArgument.m: Small tweaks to XML generation.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Improve last commit.
	* configure: Regenerate.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: When selecting an Objective-C compiler, prefer the
	value of $CC if $OBJC is not set. Also, if the user does not specify
	a specific compiler and clang is installed, default to using clang.
	* config.make.in: Update for new compiler selection.
	* configure: Regenerate.

2011-10-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile
	* Documentation/dk_make_protocol.1
	* Documentation/GNUmakefile.postamble:
	Add manpage for dk_make_protocol. 

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix memory leak.
	* Source/DKNotificationCenter.m: Rearrange to silence invalid warning
	about use-after-free.

	Bugfixes for problems detected by clang's static analyser.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Absence of the change notification annotation in
	the introspection data implies that the property sends change
	notifications (per D-Bus spec).

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Add a special case for conversions to bool for
	compliance with the D-Bus specification.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKBoxingUtils.m:
	Small bugfixes for problems detected by clang.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.h: Expose change notification check method.
	* Source/DKProxy.m: Implement -automaticallyNotifiesObserversForKey:

	Start working on KVO support.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement check whether the property emits change
	notifications.
	* Source/DKPropertyMethod.m: Ensure that mutators are KVC-compliant.
	* Source/DKMethod
	* Source/DKPropertyMethod.m:
	Fix generation of mutator declarations.
	* Documentation/UsingDBus.texi:
	Update docs on property mutators.

	Make properties somewhat KVC-compliant. NOTE: This constitutes an API
	break. If you have code that sets a D-Bus property foo by calling
	-setfoo: please change that to -setFoo:.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKProperty.h
	* Source/DKProperty.m:
	Implement emission of Objective-C 2 style @property declarations.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Modify to expose different property declaration styles.
	* Tools/dk_make_protocol.m: Implement switch between Objective-C 1 and
	2.
	* Documentation/UsingDBus.texi: Document new feature of
	dk_make_protocol.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Type conversion test.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m
	* Source/DKArgument.m
	* Source/DKMethod.m:
	Implement conversion between primitive types.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.m
	* Source/DKPropertyMethod.m:
	Fix generation of declarations for property accessors/mutators.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Updated information about runtime
	interaction.

2011-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document file descriptor support.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m
	* Source/DKArgument.m:
	Add support for boxing DBUS_TYPE_UNIX_FD as NSFileHandle.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m: Implement more type information extraction.
	* Source/type_encoding_cases.h: Import from libobjc2
	* Documentation/readme.texi: Mention MIT licensed file from libobjc2
	* Tests/TestDKArgument.m: Add some tests for the new type info functions.
	* README: Regenerate

	More preliminaries for type conversion improvements.

2011-09-20 Niels Grewe <niels.grewe@halbordnung.de>

        * Source/DKBoxingUtils.h
        * Source/DKBoxingUtils.m:
	Factor out some type conversion logic.
	* Source/DKMethod.h
        * Source/DKArgument.h
        * Source/DKMethod.m
        * Source/DKArgument.m
        * Source/DKPropertyMethod.m
        * Source/GNUmakefile:
	Follow-Up changes for DKBoxingUtils.

2011-09-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Little work on emitting introspection data.
	* Source/DKObjectPathNode.m
	* Source/DKPortNameServer.m
	* Source/DKPort.m
	* Source/DKNotificationCenter.m
	* Tests/TestDKArgument.m:
	Un-bitrot and fix warnings spotted by clang.

	Small maintenance changes.

2011-05-17 Andreas Schik <andreas.schick@web.de>

	* Source/DKNotificationCenter.m: Fix off-by-one error when
	computing the interface from a notification name.

2011-05-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Replace libdbus API-calls with DBusKit methods for inserting and
	removing match rules on the bus. Depend on the bus object to do
	this.
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Add method to test for disconnection. Changes to support recent
	fixes in the notification center.

	Eliminate a problematic code-path by not depending on the
	libdbus API for adding and removing match rules. Turns out we
	can just call the corresponding methods via the bus objects. 

2011-05-12 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.preamble:
	Bump version to 0.2.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Thread safety fixes.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Start implementing generation of XML introspection data.
	* Documentation/announce.0.2.texi: Stub release announcement
	for the next version.

	Thread safety fixes, started working on the generation of D-Bus
	XML introspection data.

2011-04-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Fix incorrect return statement.

2011-04-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Move handling errors on watch
	generation into the observable, make the worker thread perform
	adding the watch if possible. This improves reliability when we
	are operating without synchronization on +initialize.

2011-04-15 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Fix word-size issues.
	* Documentation/install.texi: Bump required gnustep-base
	version to 1.22.0.
	* INSTALL: Regenerate.

2011-04-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Use pseudo interfaces instead of
	@class declarations for private classes that need to be
	initialized before starting the worker thread. This makes clang
	happy.
	* Source/DKArgument.m: Remove extraneous parantheses.
	* Source/DKInterface.m: Fix a bug that caused property
	getters/setters to be registered twice.

	Clang compatibility and bugfixes by Sebastian Reitenbach.

2011-03-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Remove redundant fixup for atomic
	operations linkage errors on 32bit intel platforms.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Import a lot of autoconf stuff to detect whether
	we need to link libgcc for atomic operations.
	* config.make.in: Add flags for atomic operations.
	* aclocal.m4
	* configure:
	Regenerate
	* m4/*
	* config.guess
	* config.sub
	* ltmain.sh
	* libtool
	* install-sh:
	Add libtool/autconf related file.

	Fixes to link libgcc for atomic operations when needed.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Attempt to fix linkage errors for 32bit
	intel platforms.

2011-02-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.gsdoc: Documentation improvement.
	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Document bus-state notifications. Turn strings for notification
	names into globals. 
	* Source/DKEndpointManager.m: Move thread starting code to the
	correct place.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/announce.0.1.texi: Add draft release
	announcement for 0.1.
	* Documentation/GNUmakefile: Add rules for ANNOUNCE
	* GNUmakefile.preamble
	* Source/GNUmakefile:
	Move version number to the top level.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fixed bug with method cache generation in
	the single-threaded case.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Add packaging metadata.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document failure recovery
	procedures.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fix over-release bug where we didn't take
	into account the fact that libdbus also takes ownership for the
	context objects.
	* Source/DKProxy.m: Let DKDBus objects trigger the state sync
	between DKNotificationCenter and the D-Bus connection.
	* Source/DKNotificationCenter.m: Correctly replace the endpoint
	after reconnect. Implement state sync with the new D-Bus
	connection.

	Finish implementing reconnection logic for bus objects and
	notification centers.

2011-02-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Fix the method that fills the ring
	buffer to actually do the expected thing in single-threaded mode.
	Previously, it would directly execute the request even if it was
	requested not to wait, causing unexpected reentrancy for some
	things. Also factor out the code that implements fallback to
	NSInvocation into a separate method.
	* Source/DKPort.m: Use libdbus macro for interface name.
	* Source/DKEndpoint.m: Actually remove DKWatchers from the
	runloop when thy are deallocated.
	* Source/DKProxy.m: Refactor -_disconnected: a bit. Override
	-methodSignatureForSelector: for DKDBus in order to play nice
	with notification center that does need to call private methods
	on DKDBus.
	* Source/DKNotificationCenter.m: Fix signal handling to take
	into account situations where no sender object is present.
	org.freedesktop.DBus.Local.Disconnected is an example.
	* Tests/TestDKProxy.m: Be more generous when waiting for threads
	to terminate.

	Bugfixes to get connection recovery to work. It will now work
	exactly once because the notification center does not yet update
	the new D-Bus connection to match its local state.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy+Private.h: Expose methods necessary for
	connection recovery to sibling classes.
	* Source/DKProxy.m: Make DKDBus reconstruct the port when
	recovery was successful.
	* Source/DKEndpointManager.h: Remove faulted connection table.
	* Source/DKEndpointManager.m: Implement endpoint recovery. Remove
	faulted connection table.

	Implement recovery of D-Bus connections for the bus objects.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where the field index for
	structure was not properly incremented in deserialization.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where deserializing an empty
	array would erroneously trigger an assertion failure.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be more verbose when failing assertions.

2011-02-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.h
	* Source/DKEndpointManager.m:
	Update prototype of method for scheduling endpoint recovery.
	Recovery will not yet be attempted, though.
	* Headers/DKProxy.h: Add ivar to flag disconnected bus objects.
	* Source/DKProxy.m: Start implementing disconnection handling
	for the bus objects. Also untangle DKDBus and
	DKNotificationCenter by overriding a few methods in DKDBus not
	to call into the notification center and by using a special
	DKPort subclass.
	* Source/DKProxy+Private.h: Expose a few more private methods to
	the sibling classes.
	* Source/DKPort.m: Invalidate ports on disconnection from the
	bus. Factor out notification registration into a separate
	method.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Support changes to allow postponing signal registration for bus
	objects.
	* Source/DKNonAutoInvalidatingPort.h
	* Source/DKNonAutoInvalidatingPort.m:
	Add subclass that does not rely on a working notification
	center. Only used by DKDBus instance.
	* Source/DKNotificationCenter.m: Untangle dependencies between
	DKDBus and DKNotificationCenter. DKDBus does no longer require
	the notification center, hence DKNotificationCenter is now
	responsible for registering signal definitions from the bus
	objects and making them watch for the disconnection signal.
	* Source/GNUmakefile: Add new module.

	Start working on recovery of the bus objects after disconnection
	from the bus. Also sanitize the dependencies of
	DKNotificationCenter and DKDBus.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m
	* Source/DKPortNameServer.m:
	Add -dealloc methods to the singletons for completeness.
	* Source/DKPortNameServer.m: Actually initialize the (yet
	unused) tables.
	
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix sel_getType_np check.
	* configure: Regenerate.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKPortNameServer.m
	* Headers/DKPortNameServer.h:
	Add stub implementation of a port name server.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	Add missing files.

2011-02-15 Niels Grewe <niels.grewe@halbordnung.de>

	Merge DBusKit-ThreadRewrite branch. DBusKit now offloads all
	interactions with libdbus to a separate thread and uses
	DKEndpointManager as a gateway to do so. The new behaviour is
	disabled by default and can be enabled by calling [DKPort
	enableWorkerThread].
	This also contains various improvements and fixes bugs that
	were exposed by the new behaviour.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be explicit about the buffer type for
	object path arguments when generating standins.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add specialised deserialisation method for proxy-standins.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Add DKProxyStandin class to be used by the notification
	center while generating notifications.
	* Source/DKSignal.m: Deserialise DBUS_OBJECT_PATH as a standin,
	not as a proxy.
	* Source/DKEndpoint.m: Simplify -addTimeout: callback method.
	* Source/DKProxy.m: Generate method cache for the bus objects on
	init time. (The methods will be used internally anyways.)
	* Source/DKNotificationCenter.m: Avoid reentrancy when handling
	signals by a) making sure the bus objects are already available
	when initialising the notification center and b) using a
	DKProxyStandin when checking whether the signal should be
	handled and scheduling delivery of the notification on the run
	loop. Also fix a stupid va_arg bug.

	Attempt to fix reentrancy problems in DKNotificationCenter.
	Previously, handling a D-Bus signal could trigger the generation
	of DKProxies. Those would in turn would call back into libdbus
	code where things would get locked up. (Problem originally
	reported by Philippe Roussel.)

2011-01-03 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/DKIntrospectionParserDelegate.m:
	Tweak compatibility with different XML parser versions in
	gnustep-base.
	* Documentation/readme.texi: Fix typo.
	* README: Regenerate.

2010-12-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Fix crash in -isEqual: when the receiver is
	being compared with a NSPort subclass other than DKPort
	(reported by Philippe Roussel).

2010-10-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethodCall.m
	* Tests/TestDKArgument.m:
	Fix memory leaks in the test suite.

2010-10-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Implement automatic invalidation of ports
	when the remote disappears from the bus. Applications should
	watch for NSPortDidBecomeInvalidNotification to catch this
	situation.

2010-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Add -isEqual: and -hash implementations
	to DKEndpoint. Improve thread-safety of DKRunLoopContext.
	* Source/DKPort.m: Add -isEqual: and -hash implementations.
	Remove -_proxyAtPath:, which is superfluous with recent
	changes to the DKProxy API.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add accessor method for the port and check proxy scopes by means
	of port equality.
	* Source/NSConnection+DBus.m: Remove use of -[DKPort
	_proxyAthPath:].
	* Tests/TestDKProxy.m: Improve logging for failure in threaded
	test.

	Follow-up changes for DKProxy API change, based on suggestions
	by Fred Kiefer.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangLog: Adjust formating.
	* Tools/dk_make_protocol.m: Point to the correct license file.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.h
	* Source/DKProxy.m:
	Adjust to use DKPort.
	* Source/DKArgument.m
	* Source/DKNotificationCenter.m
	* Source/DKObjectPathNode.m
	* Source/DKPort.m:
	Fixup for changes in DKProxy.

	Make DKProxy use a DKPort instead of a DKEndpoint/service name
	pair. This is the level of abstraction that will be used by
	DKPortNameServer to handle connection invalidation etc.
	Note: This breaks binary compatibility for DKPort subclasses
	with the fragile ABI.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Documentation fixes.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Include property methods in protocol
	declarations (no Objective-C 2 style "@property()"-stuff yet)
	* Documentation/UsingDBus.texi: Document property support.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix to respect the semantics of
	dbus_message_iter_init().

2010-09-12 Phillipe Rouselle

	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Include string.h

	With the last modifications to base and libobjc2, each string
	function would generate a warning.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add -installProperties method.
	* Source/DKIntrospectionParserDelegate.m: Enable parsing
	properties.
	* Source/DKProperty.h: Fix typo and rename method.
	* Source/DKProperty.m: Implement -copyWithZone:
	* Source/DKPropertyMethod.m: Fix selector string for setters.
	* Source/DKProxy.m: Trigger generation of property methods

	Enabled property support. Getters are already working, setters
	not so much.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m: Fix (benign) dead store.
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKProxy.m
	* Source/DKSignal:
	Fix memory leaks.

	Fix bugs found by the clang static analyzer.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
	* GNUmakefile: Add DKProperty.m and DKPropertyMethod.m to the
	build.
	* Source/DKArgument.h: Tiny documentation clarification.
	* Source/DKMethod.h: Expose some methods needed by the
	subclasses.
	* Source/DKMethod.m: Introduce a slightly more flexible way of
	comparing D-Bus and Obj-C method signatures. 
	* Source/DKProperty.h: Remove redundant attribute field.
	* Source/DKProperty.m: Implement DKProperty to hold
	introspection data about properties.
	* Source/DKPropertyMethod.h: Complete header.
	* Source/DKPropertyMethod.m: Slight cleanup for the accessor,
	implement the mutator method.

	Even more work on properties.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix typo. Protect against potential
	memory leak when unmarshalling a variant type argument raises an
	exception.
	* Source/DKProperty.h: Changes to the class layout, added some
	method declarations.
	* Source/DKPropertyMethod.h
	* Source/DKPropertyMethod.m:
	Began stubbing out support for property accessor methods.

	Further work on properties. (Not yet connected to the build)

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile: Fix copy-and-paste error.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangeLog: Generate from `svn log'.
	* Source/DKSignal.h: Documentation fix.
	* Source/DKProperty.h: Add header.

	Begin conceptualizing property support. Add ChangeLog.

2010-09-10  Richard Frith-Macdonald <rfm@gnu.org>

	* GNUmakefile: warn if gnustep-make not found

2010-09-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix bug reported by Philippe Roussel. (Note to self:
	Unit tests are only useful if you actually run them…)

2010-09-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix compilation of testcases if DBusKit is not yet installed.

2010-08-23  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/GNUmakefile.postamble: Fix build by creating link to the header
	dir. (reported by Philippe Roussel).
	* Documentation/GNUmakefile.postamble: Fix removal of documentation on
	`make uninstall'.

2010-08-20  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Only build documentation if makeinfo and texi2pdf are
	available.
	* Source/DKNotificationCenter.m: Fix bug that caused a sanity check to
	be skipped.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/install.texi: Mention the nonstrict flag.
	* INSTALL: Regenerate.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix cast

2010-08-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation for
	-[DKObservable matchesUserInfo:], simplified generation of observables
	by the notification center.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* COPYING: Add LGPL.
	* GNUmakefile: Add documentation to the build.
	* GNUmakefile.preamble: Add version variable.
	* Documentation/GNUmakefile
	* Documentation/GNUmakefile.postamble
	* Documentation/readme.texi
	* Documentation/install.texi
	* Documentation/DBusKit.gsdoc:
	Build README and INSTALL as well as reference documentation.
	* Headers/DKProxy.h
	* Headers/DKPort.h
	* Headers/DNotificationCenter.h:
	Mark ivars as private. Minor documentation improvements.
	* README
	* INSTALL:
	Regenerate.
	
	Improvements to the documentation.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumUtilityPanel.h,
	* Examples/Apertium/ApertiumUtilityPanel.m:
	Add files missing from last commit.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm:
	Make language selection panel an utility window.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Clarify removal semantics for
	observations.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: More consistent implementation of
	adding/removing observers.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Simplify removal of observations.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Orthographical corrections.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi: Reorder menu.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi
	* Documentation/ExposingObjects.texi
	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Further work on the manual.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation
	* Documentation/DBusKit.texi,
	* Documentation/GNUmakefile
	* Documentation/Introduction.texi
	* Documentation/fdl-1.3.texi:
	Begun writing a guide on how to use D-Bus with GNUstep:

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/COPYING
	* Tools/dk_make_protocol.m:
	Add license.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUMakefile
	* Tools/GNUmakefile
	* Tools/dk_make_protocol.m:
	Add primitive tool to generate protocol declarations from .interface
	files.
	* Source/DKInterface.m: Small tweak to the generation of protocol
	declarations.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKPort.m
	* Source/DKProxy.m:
	A few more documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKInterface.h
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionParserDelegate.h
	* Source/DKMessage.h
	* Source/DKMethod.h
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKSignal.h:
	Documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DBusKit.h: Add DKNotificationCenter.h
	* Source/DKProxy.m: Use correct path to the bus object.
	* Source/DKNotificationCenter.m: Observe name changes so that sender
	rules for observables stay up to date.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation. Fix removal
	of signal-match from D-Bus.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Small documentation improvement.
	* Headers/DKNotificationCenter.h: Documented DKNotificationCenter. Added
	ivar.
	* Source/DKProxy.m: Override -respondsToSelector:. Protect generation of
	the method cache so that a remote error doesn't leave the object in an
	unusable state.
	* Source/DKEndpoint.m: Fix DKWakeUp(). (Previously, it would create
	unwanted reentrancy.)
	* Source/DKNotificationCenter.m: Primitive support for observing D-Bus
	signals.
	
	Preliminary support for D-Bus signals. Documentation
	improvements.

2010-08-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* Source/DKInterface.[hm]:
	Remove dispatch table from DKProxy and let DKInterface generate it
	instead.
	* Source/DKInterface.[hm]: Fix memory leak. Rename -methodForSelector:
	to -DBusMethodForSelector:. Also move registration of signals here.
	* Source/DKMethod.m: Generate smarter method declarations.
	* Source/DKIntrospectionParserDelegate.m: Return nil from -leaf instead
	of NSNull. Improve handling signals.
	* Source/DKSignal.[hm]: Implement generation of userInfo dictionaries
	for notifications from received signals.
	* Source/DKMethodCall.m: Small indentation fix.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Bugfixes. Continue implementing generation of notifications from
	signals.
	* Tests/TestDKMethodCall.m
	* Tests/TestDkMethod.m:
	Use new method name.
	
	A few bugfixes and improvements suggested by Fred Kiefer.
	Continued work on D-Bus signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Implement method to add match rules for signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Remove workaround for some libdbus oddity I was
	experiencing earlier.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	API refinements for DKDBus.
	* Headers/DKPort.h
	* Source/DKPort.m
	* Tests/TestDKProxy.m:
	Finish replacing subclasses with equivalent initializers. Adopt
	test case.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Mark some functions as inlineable.
	* Source/DKEndpoint.[hm]: Carry over information about the new
	endpoint when an old one is being reused. Fix bug in
	-initWithConnectionTo: where the new connection never got assigned.
	Rearrange method order. Improve documentation a bit.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Move rule generation into DKObservable helper-class.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Remove struct nonsense in favour of real objects.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKSignal.[hm]: Make DKSignal useful.
	* Header/DKNotificationCenter.h: Add notificationNames ivar.
	* Source/DKNotificationCenter.m: Implement registration of signals and
	notification names.
	* DKIntrospectionParserDelegate.m: Parse signals and trigger their
	registration with the appropriate notification center.
	* Tests/TestDKProxy.m: Fix test for errors returned by remote objects.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Clarify exception name.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Add methods to generate rules for
	matching D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add DKDBus subclass for getting shared proxies to the
	org.freedesktop.DBus services on their respective busses.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement -_uniqueName to get the unique name of a service from the bus.
	* Headers/DKPort.h: Add "don't know" member value to the bus type
	enumeration.
	* Source/DKPort.m: Use DKDBus instead of -getBusObject magic.
	* Source/DKEndpoint.[hm]: Implement -DBusBusType to get the type of bus
	an endpoint is connected to.
	* Source/DKInterface.[hm]: Add some more methods for signals/properties.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m
	* Source/GNUmakefile:
	Add very much work-in-progress notification center class for managing
	D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKSignal.m
	* Source/DKObjectPathNode.m:
	Fix various issues in -copyWithZone:.
	* Source/DKInterface.[hm]: Begin adding plumbing for signals/properties.
	* Source/DKIntrospectionNode.[hm]: Add -annotations method to get the
	annotation dictionary for a node.
	* Tests/TestDKMethod.m: Fix the copy test to use the correct selector.
	
	Fix NSCopying for DKIntrospectionNode and subclasses.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethod.m: Add test for copying parts of the introspection
	graph (fails at the moment).

2010-08-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKPort.h
	* Source/DKPort.m:
	Add DKDBusBusType enumeration and related initializer.
	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m
	* Source/DKSignal.m:
	Adopt NSCopying for DKIntrospectionNode and subclasses.
	* Source/NSConnection+DBus.m: Add further integration methods (commented
	out until DKPortNameServer can be committed).

2010-07-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add an explicit NSCondition and a state variable to make synchronisation
	more robust (and readable).
	* Tests/TestDKProxy.m: Adopt to changed code and add test for calling
	methods from multiple threads.
	
	Thread safety improvements.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h
	* Source/DKProxy.m:
	Disable asnychronous generation of the method cache again (it doesn't
	seem to be working reliably).

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Bugfix.
	* Source/DKEndpoint.[hm]: Support watchers and timers on multiple
	run-loops.
	* Source/DKProxy.m: Allow D-Bus methods to be called from multiple
	threads. Also enable asynchronous generation of the method cache.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Attempt to clarify the code path for method lookup.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Rename -_methodForSelector:block: to
	-_methodForSelector:waitForCache:.
	* Source/DKArgument.m: Add cast that might be needed.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Really fix the initializer this time.
	* Source/DKIntrospectionParserDelegate.m: Smarter handling of the root
	node.
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKProxy+Private.m:
	Move some more methods that are often used by the internal classes into
	DKProxy+Private.h.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Implement retrieval of a proxy for a DKObjectPathNode.
	
	More cleanup and minor improvements.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m
	* Source/DKMethod.[hm]
	* Source/DKSignal.[hm]:
	Simplify (or remove) method and signal initalizer to not require
	the interface name. Remove _DKMethodIntrospect.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement _DKInterfaceIntrospectable to replace _DKMethodIntrospect.
	* Source/DKInterface.m: Normalize selectors before table
	lookups/updates.
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m:
	Adapt test cases to use _DKInterfaceIntrospectable.
	
	Refactor the global introspection method into a global introspection
	interface to allow simpler initializers for DKMethod and DKSignal.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/GNUmakefile
	* Source/DKObjectPathNode.[hm]
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add DKObjectPathNode class and protocol (handles object trees and
	interfaces). Implement DKObjectPathNode protocol in DKProxy and expose
	it via DKProxy+Private.h.
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m
	* Source/DKOutgoingProxy.h
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/NSConnection+DBus.m:
	Include new DKProxy+Private.h instead of the public header.
	* Source/DKMethod.[hm]
	* Source/DKInterface.[hm]
	* Source/DKIntrospectionParserDelegate.m
	* Tests/TestDKMethod.m:
	Rename initializers of DKMethod and DKInterface to follow the naming
	scheme of the superclass more closely.
	* Source/DKIntrospectionParserDelegate.[hm]: Use the parent to store the
	introspection tree and not the parser delegate.
	
	Clean up the generation of the introspection data so that the parser
	delegate doesn't need to keep the generated tree around. Also be more
	consistent about naming initializers in subclasses of
	DKIntrospectionNode.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Prevent libdbus from calling _exit() when
	the bus goes away.

2010-07-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m:
	Remove parser delegate methods and ivars.
	* Source/DKSignal.[hm]
	* Source/GNUmakefile:
	Add stub for handling signals.
	* Source/DKIntrospectionParserDelegate.[hm]: Consolidate XML parsing and
	keep a stack for the XML tree.
	
	Refactor introspection handling so that the generation of the
	introspection graph happens entirely from within
	DKIntrospectionParserDelegate.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Only refer to D-Bus methods by their untyped
	selector IDs.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumTranslator.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix memory leaks generated by the fact that I copy and paste too much
	without thinking.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/NSConnection+DBus.m:
	Add -proxyAtPath: method to obtain proxies for non-root objects of a
	D-Bus service.
	* Source/GNUmakefile: Add NSConnection+DBus.[hm] to build.
	* Source/DKPort.m: Rearrange so that proxy generation is separated from
	encoding the proxy for use in NSConnection.
	* Headers/DBusKit.h: Add DKProxy.h and NSConnection+DBus.h.
	* Tests/TestDKProxy.m: Test for fetching proxies to non-root objects.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Improve error reporting.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Make DKPort check whether the requested remote
	is available on the bus.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Use sel_get_type() instead of accessing a
	selector's type field directly.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Move from NSLog() to NSDebugMLog()
	* Source/DKProxy.[mh]: Move from NSLog() to NSDebugMLog(). Implement
	-setPrimaryDBusInterface:.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Check whether making calls to
	the org.apertium.info object on D-Bus raises an exception. Also more
	checking when generating the localized language string for the UI.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Strip whitespace from mode strings.
	* Examples/Apertium/ApertiumServer.m: Properly handle exceptions from
	the D-Bus side.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples, Examples/Apertium
	* Examples/Apertium/ApertiumController.h
	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/ApertiumInfo.h
	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumInfo.plist
	* Examples/Apertium/ApertiumServer.h
	* Examples/Apertium/ApertiumServer.m
	* Examples/Apertium/ApertiumTranslator.h
	* Examples/Apertium/ApertiumTranslator.m
	* Examples/Apertium/COPYING
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/data.info
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm
	* Examples/Apertium/SourceLanguagePopup.h
	* Examples/Apertium/SourceLanguagePopup.m
	* Examples/Apertium/main.m:
	Commit a little example demonstrating what is possible with DBusKit. The
	Apertium.service hooks into the Apertium machine translation system via
	D-Bus and exposes it as a service. You can thus use the translator from
	within any GNUstep application. The DBusKit-specific portions are
	contained in ApertiumTranslator.m and ApertiumInfo.m.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Turn NSLog() calls into NSDebugMLog().
	Fix a bug where timers were not tracked, causing them to not be
	invalidated properly (they would sometimes fire after the target object
	disappeared).

2010-07-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Guard against nil values as arguments. Fix bug in
	* marshalling variant type arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix bug where strings would be messed up
	because of an improper cast.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile: Keep gnustep-make from installing the
	testsuite.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Add test case for methods that contain boxed
	and non-boxed arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.[hm]: Be more flexible about boxing. Decide
	whether argument should or shouldn't be boxed based on the
	related invocation.
	* Source/DKMethodCall.[hm]
	* Source/DKProxy.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKProxy.m:
	Remove references to the old argument types which did statically
	decide on a boxing scheme.
	* Headers/DKProxy.h: Remove unused ivar.
	
	Make better use of D-Bus and Objective-C introspection data to
	decide on the fly whether an argument to a D-Bus method should
	be boxed in an Objective-C object or not.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.[hm]:
	Add -methods to return the array of all methods in the interface.
	* Source/DKIntrospectionNode.[hm]: Add -setParent: method that is
	needed to reparent nodes from the parser delegate to the proxy
	that is using them.
	* Source/DKIntrospectionParserDelegate.[hm]: Add class to hold
	the constructed introspection graph.
	* Source/DKMethod.m: Remove call to DKProxy's _installMethod:...
	method.
	* Source/DKProxy.m: Remove parser delegate methods and reorganise
	the code so that DKProxy itself is responsible for installing
	the methods found by introspection.
	* Source/GNUmakefile: Add DKIntrospectionParserDelegate.m to the
	build.
	
	Separate parsing of introspection data from DKProxy, which is now
	also responsible for installing methods.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionNode.m
	* Source/DKProxy.m:
	Simplify -proxyParent method.

2010-07-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.postamble
	* Source/GNUmakefile
	* Source/GNUmakefile.postamble
	* Source/Tests
	* Tests
	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Reorganise the project so that the tests are built as a separate
	subproject and linked against the framework.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Remove erratic parentheses around protocol
	names.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m:
	Replace side-effect ridden NSAsserts.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Make proper use of selector types to
	generate the method signature so that methods can be called
	unmangled without boxing the arguments.
	* Source/Tests/TestDKProxy.m: Implement test for unboxed method
	calls.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Some bugfixes. Implement handling mangled
	selectors.
	* Source/Tests/TestDKProxy.m: Test sending unboxed method calls
	with mangled selectors.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix statement order and typo.
	* Source/Tests/TestDKProxy.m: Test for returning errors from
	D-Bus.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Add needed ivars.
	* Source/AsyncBehavior.h: Minor addition.
	* Source/DKArgument.[mh]: Remove -proxyParent method (now in
	superclass)
	* Source/DKInterface.h: Declare -mangledName.
	* Source/DKInterface.m: Implement selector/method-map and XML
	parser delegate methods.
	* Source/DKIntrospectionNode.[mh]: Move -proxyParent method here.
	Handle annotations.
	* Source/DKMethod.[hm]: Implement -selectorString method to
	generate selector names. Also add XML parser delegate methods.
	* Source/DKMethodCall.m: Fix bug where an D-Bus error was used
	unitialized.
	* Source/DKProxy.m: Remove async stuff (pretty superfluous right
	now). Fix various bugs in selector resolution and implement
	building the method cache.
	* Source/Tests/TestDKProxy.m: Add tests for new functionality.
	
	Implement the remaining bits of basic proxy functionality.
	Arbitrary D-Bus methods can now be called when their arguments
	are boxed as Objective-C types. Calling methods without boxing
	to come.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix -isDictionary method for array
	arguments.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove isa-swizzling in favour of creating
	the correct objects in the initalizers.

2010-07-03  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove
	incorrect -release (spotted by Fred Kiefer).
	* Source/Tests/TestDKMethodCall.m
	* Source/Tests/TestDKArgument.m:
	Small test improvements.

2010-07-02  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Add macros to do stuff asynchronously
	if possible.
	* Source/DKInterface.[hm]: Remove superfluous -parent method.
	* Source/DKMethod.m: Some more modularisation. Add comparison
	method. Calculate offsets and sizes for signatures correctly.
	* Headers/DKProxy.h: Add instance variables.
	* Source/DKProxy.[hm]: Implement -forwardInvocation: and triggers
	to generate the method cache (actual generation of the cache
	still missing).
	* Source/Tests/TestDKProxy.m: Add test for calling Introspect()
	via the built-in _DKMethodIntrospect.
	* Source/Tests/TestDKArgument.m: Minor rearrangement.
	
	Made dispatching D-Bus method calls work via -forwardInvocation:.
	As of yet, you can only call -Introspect (this is needed to obtain the
	introspection data used to build the actual method cache).

2010-06-28  Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix autoconf test for location of runtime.h
	* configure: Regenerate

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[hm]: Turn DKRunLoopContext into an instance
	variable. Some features need access to the run loop and run loop
	mode information.
	* Source/DKMethodCall.[hm]: Add implementation of synchronous
	method calls and stubbed out support for asynchronous calls.
	* Source/GNUmakefile: Add new modules.
	* Source/Tests/TestDKMethodCall.m: Add test for introspection
	method call.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Fixed missing include.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Add (un-)marshalling methods to the header.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[mh]:
	Add accessor method for the DBusConnection on libdbus-level.
	* Source/GNUmakefile
	* Source/DKMessage.[mh]:
	Add primitive class for sending message to D-Bus.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKArgument.m: Add test for fallback-to-struct
	feature when encoding dictionaries to variant types.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m, Source/Tests/TestDKArgument.m: Fix
	generation of signatures for objects that are passed as variant
	type arguments. Some test-cases for this.

2010-06-24  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.[mh]: Implement marshalling of variant
	types. Also add the ability to customize the unboxing of
	objects.
	* Source/DKEndpoint.m
	* Source/DKMethod.m
	* Source/DKPort.m:
	Compile fixes for clang.
	* Source/DKOutgoingProxy.[mh]
	* Source/GNUmakefile:
	Add stub implementation for outgoing proxies.
	* Source/DKProxy.m: Add method to distinguish outgoing and
	incoming proxies.
	* Source/Tests/TestDKProxy.m: Fix runtime.h include.
	* Source/Tests/TestDKArgument.m: Add test for custom unboxing
	methods.
	* Source/config.h.in
	* config.make.in
	* configure.ac
	* GNUmakefile.postamble:
	Update configure script and paraphernalia to check for advanced
	runtime features.
	* configure: Regenerate
	
	Finish implementation of (un-)marshalling values between
	NSInvocation and D-Bus messages. More flexible scheme for
	unboxing values. Various smaller fixes.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling D-Bus variant types.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: (Un-)marshalling of D-Bus structs.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Finish (un-)marshalling of dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling of D-Bus
	dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: WIP (un-)marshalling of complex types.

2010-06-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	Source/DKInterface.[hm]:
	Add WIP representation of D-Bus interfaces.
	* Source/DKIntrospectionNode.[mh]: Basic XML parser delegate
	methods.
	* Source/DKMethod.m: Remove superflous method signature code.
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKArgument.h:
	Work on marshalling/unmarshalling between NSInvocation and D-Bus
	messages.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Remove leftover duplicate
	code.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile,
	* Source/Tests/TestDKMethod.m:
	Factor common code out into DKIntrospectionNode and make
	DKArgument and DKMethod use it.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Also use
	org.freedesktop.DBus.Method.NoReply annotation to mark the
	method as oneway.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h
	* Source/DKMethod.m,
	Source/Tests/TestDKMethod.m:
	Make DKMethod generate method declarations.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/GNUmakefile
	* Source/Tests/TestDKProxy.m:
	Work on method name unmangling. Now partially working, still ugly
	as hell.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKMethod.m
	* Source/Tests/TestDKArgument.m:
	Tests for assignments in the initializers.
	* Source/DKProxy.m
	* Headers/DKProxy.h:
	-hasSameScopeAs: method to test whether two proxies fall into
	the scope of one and the same D-Bus service.
	* Source/DKArgument.h: Expose a few accessors.
	* Source/DKArgument.m: Fix bug in the name assignment. Implement
	-name method.
	Let the proxy do the scope checking.
	* Source/DKMethod.m: Shuffle a few statements around for more
	natural ordering.
	* configure.ac: Leave a TODO about needing to fix the configure
	script ugliness.
	* config.make.in: Another attempt to get linking done properly.
	
	Many improvement suggested by Fred Kiefer.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* config.make.in:
	Fix failure to link against libdbus (reported by Fred Kiefer).
	Initial work on method-name mangling.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: short is apparently always 16bit.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix unboxing of doubles.
	* Source/Tests/TestDKArgument.m: Add test cases for unboxing.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m:
	Implement unboxing of simple types. Fix boxing of 64bit values.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKProxy.m
	* Source/GNUmakefile,
	* Source/GNUmakefile.postamble
	* Source/Tests/TestDKArgument.m,
	* Source/Tests/TestDKPort.m:
	Add a few more tests and some dummy methods.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m,
	* Source/Tests/TestDKArgument.m:
	Boxing of simple types with associated test-coverage.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile
	* Source/Tests/TestDKMethod.m:
	Add initial implementation of DKMethod to encapsulate D-Bus
	method information.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	* Source/GNUmakefile.postamble:
	Provide link to	public headers when compiling the tests.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: autorun ukrun for tests.
	* configure.ac
	* config.make.in
	* Source/GNUmakefile:
	Check for and use -Wdeclaration-after-statement
	* Source/DKArgument.m
	* Source/DKPort.m:
	Fix C99isms.
	* Source/Tests/TestDKArgument.m: Separate unit tests from source.
	Properly include local headers.

2010-06-08  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/GNUmakefile
	* Source/TestDKArgument.m:
	Fix DKArgument problems. Add test cases for DKArgument (requires
	UnitKit).

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Support generating D-Bus type signatures from DKArgument trees.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Made DKArgument collect all subtypes of an argument from a D-Bus
	message. Totally untested, though.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Place -release call properly. Thanks to Fred
	Kiefer for pointing that out.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m,
	* Source/GNUmakefile:
	WIP representation of D-Bus argument information.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Simpify DKPort a bit.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Actually, -[NSProxy dealloc] can be called.
	Pointed out by Fred Kiefer; no idea why I thought that wasn't
	possible…

2010-05-30  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Headers/DKProxy.h
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/GNUmakefile:
	Add a dummy proxy class. Finish implementation of the
	NSConnection integration for ROOTPROXY_REQUEST messages:
	Connections to D-Bus can now return their own proxies.

2010-05-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Call self instead of super for DKPort subclass
	initializers.

2010-05-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fixes a bug where returning an pre-existing
	DKEndpoint would result in a teardown of the D-Bus connection.
	Also work around some libdbus strangeness that needs further
	investigation.
	* Source/DKPort.m: Slightly more expressive designated
	initializer. Begin stubbing out integration into NSConnection.
	* Headers/DKPort.h: Add initializer.

2010-05-10  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile.postamble
	* Headers/config.h.in
	* aclocal.m4
	* configure
	* configure.ac:
	Add configure script and paraphernalia (but make still
	regenerates config.make on distclean).
	* Source/DKPort: Simple initializers for DKPort.

2010-05-09  Niels Grewe <niels.grewe@halbordnung.de>

	* .
	* GNUmakefile
	* GNUmakefile.postamble
	* Headers
	* Headers/DBusKit.h
	* Headers/DKPort.h
	* Headers/config.h.in
	* Source
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/GNUmakefile
	* config.make.in
	* configure.ac:
	Import code in preparation for GSoC.
2013-12-30 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Improve validity checking on object
	paths.

2013-07-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Add missing include. (Reported by Philippe Roussell)
	Implement some stuff missing for proper D-Bus facing objects.
	* Source/DKObjectPathNode.h: Expose another method for DKOutgoingProxy to use.
	* Source/DKPort.m: Add some debugging for object path name handling.
	* Examples/HelloWorldService/main.m: Tweak export.
	* Examples/HelloWorldService/test.xml: Add test interface. 

2013-07-02 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Expose some DKProxy internals for subclassing.
	* Source/DKOutgoingProxy.m: Allow introspection data to be added from a
	file (not a public API, though)

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check clang_Cursor_getArgument() since it's missing in earlier libclang versions
	* configure: Regenerate
	* ChangeLog: Reformat a few inconsistencies

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Implement -handleDBusMessage: on the outgoing proxy.

2013-05-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Replace deprecated self->isa access with object_getClass()
	* Documentation/Introduction.texi: Fix typo

2012-11-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Replace incorrect NSDebugMLog with NSDebugFLog.
	Reported by Philippe Roussell.

2012-09-23 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKNotificationCenter.m:
	Deal with clang warning about casting SEL to uintptr_t.

2012-08-22 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check for libclang.
	* configure: Regenerate.
	* Documentation/install.texi: Document optional libclang
	requirement.
	* INSTALL: Regenerate
	* Source/config.h.in: Macro for libclang check.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Add D-Bus type derivation based on libclang. Fix potential index out of
	bounds bug in selector name mangling.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add methods for generating arguments from CXTypes.
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Add methods for generating methods from CXCursors.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add methods for generating interfaces by runtime-inspecting protocols 
	or classes.
	* Source/GNUmakefile: Explicitly link Objective-C and Foundation libs.
	* Tests/TestDKInterface.m:
	Tests for interface generation from introspection data.

	Further work on introspection data generation.

2012-08-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m:
	Fix typos.

2012-08-17 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Add a second check for dbus/dbus.h just in case
	that pkg-config returns nonesense.
	* configure: Regenerate
	* Source/DKObjectPathNode.m: Import DKEndpoint header.

	Minor build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Properly set compiler flags for C99 and detect
	the runtime flavour.
	* configure: Regenerate.
	* config.make.in: Add C99 flags when needed.
	* Source/config.h.in: Macros for choosing typed selector
	introspection method.
	* Source/DKProxy.m
	* Source/DKOutgoingProxy.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m:
	GCC compatibility tweaks
	* Tools/GNUmakefile: Explicitly link against libdbus.

	Build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Disable -Wdeclaration-after-statement
	* configure: Regenerate
	* Source/DKArgument.m: Move declaration before statement
	(spotted by Philippe Roussel)

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Temporarily enable -Wno-deprecated-declarations
	for clang; check whether we need to include objc/encoding.h.
	* configure: Regenerate.
	* Headers/DKNotificationCenter.h: Add deprecation notices for
	methods using features that are going away. (New API still
	missing).
	* Source/config.h.in: Add macro for objc/encoding.h check.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add convenience method for generating arguments from
	Objective-C type encodings.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Implement conversion from selectors to method names; fix type
	mapping for id (it was incorrectly mapped to
	DBUS_TYPE_OBJECT_PATH, but should be mapped to
	DBUS_TYPE_VARIANT).
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Implement generation of methods from runtime introspection
	data.
	* Source/DKMethodReturn.m: Change method order.
	* Source/DKObjectPathNode.m: Fix memory leak.
	* Source/DKOutgoingProxy.m: Add some method stubs.
	* Source/DKPort.m: Fix bug where the root object was lead to
	believe that it was its own child.
	* Test/TestDKMethod.m: Add tests for selector mangling and
	method generation from runtime data structures.

2012-05-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Add DKMethodReturn.m
	* Source/DKProxy+Private.h
	* Source/DKProxy.m: 
	Tweak generation of introspection data.
	* Source/DKMethodReturn.h
	* Source/DKMethodReturn.m:
	Implement replies to method calls.
	* Source/DKMessage.m: Add some debugging.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Adopt DKExportableObjectPathNode protocol.
	* Source/DKEndpointManager.m: Fix incorrect use of libdbus
	APIs.
	* Source/DKPort+Private.h
	* Source/DKPort.m:
	Register exported objects with the D-Bus daemon.
	* Source/DKObjectPathNode.h: Another revision of the object
	path protocol; add subprotocol for exportable nodes.
	* Source/DKObjectPathNode.m: Implement revised object path
	protocol; tweak generation of introspection data; Implement
	handling of method calls from D-Bus (object path nodes do not
	represent any local object and only respond to introspection
	requests.
	* Tools/dk_make_protocol.m: Follow up changes for revised 
	object path protocol.
	* Tests/TestDKPort.m: Revoke D-Bus object registrations after
	the tests.
	* Examples/HelloWorldService: Initial scaffolding for an example
	service that vends objects to D-Bus.

	First batch of object vending changes. We can now succesfully 
	export arbitrary object graphs to D-Bus and they can (partially)
	be introspected by other clients on the bus. Exported objects 
	don't respond to message sends yet, though.

2012-04-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix marshalling of vendable local objects.
	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Implement revised object path protocol and proper -isKindOfClass:
	method.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Revise DKObjectPath protocol and implement special root object path
	subclass. Fix name generation for OPNs.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Stub out some methods.
	* Headers/DKPort.h
	* Source/DKPort+Private.h
	* Source/DKPort.m: Implement more of the object path handling and 
	add a private header to expose some of it.
	* Tools/dk_make_protocol.m: Adapt to new introspectable interface.
	* Tests/TestDKPort.m: Tests for object path handling.
	* Tests/TestDKProperty.m: More flexible test for XML serialization.

	More work on vending objects to D-Bus.

2012-04-21 Phillipe Roussel <p.o.roussel@free.fr>

	* Source/NSConnection+DBus.m: Move declarations before statements.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/DKOutgoingProxy.h
	* Headers/DKPort.h
	* Source/DKPort.m
	* Source/NSConnection+DBus.m:
	Preliminary changes for vending objects.
	* Source/DKArgument.m: Remove redundant conditional branch.
	
	Start work on scaffolding for vending objects to D-Bus.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Fix declaration of queueCount ivar.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/NSConnection+DBus.m: Replace -rootProxy in NSConnection with
	the implementation from our category.
	* Tests/TestDKProxy.m: Test to verify that we are not breaking
	-rootProxy for standard DO.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix emission of argument names
	* Source/DKMethod.m: Fix bug in specifying argument directions.
	* Source/DKObjectPathNode.m: Actually comply to the D-Bus spec when 
	writing introspection data.
	* Source/DKProxy.m: Implement XML introspection data generation
	* Source/DKProxy+Private.h: Declare -XMLNode on DKProxy
	* Tests/TestDKArgument.m
	* Tests/TestDKInterface.m
	* Tests/TestDKMethod.m
	* Tests/TestDKProxy.m:
	Make tests more robust.

2012-01-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKInterface.m
	* Source/DKSignal.m:
	Implement XML introspection data generation.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKInterface.m: Add some tests for interfaces.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKSignal.h
	* Source/DKSignal.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Use constants for argument directions consistently.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement generation of XML introspection data.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKProperty.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Declare -XMLNode on all introspection nodes.
	* Source/DKMethod.m: Implement generation of MXL introspection data.
	* Tests/TestDKMethod.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for annotated XML introspection data.
	
2012-01-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for XML generation of arguments.
	* Source/DKArgument.h
	* Source/DKArgument.m: Small tweaks to XML generation.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Improve last commit.
	* configure: Regenerate.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: When selecting an Objective-C compiler, prefer the
	value of $CC if $OBJC is not set. Also, if the user does not specify
	a specific compiler and clang is installed, default to using clang.
	* config.make.in: Update for new compiler selection.
	* configure: Regenerate.

2011-10-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile
	* Documentation/dk_make_protocol.1
	* Documentation/GNUmakefile.postamble:
	Add manpage for dk_make_protocol. 

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix memory leak.
	* Source/DKNotificationCenter.m: Rearrange to silence invalid warning
	about use-after-free.

	Bugfixes for problems detected by clang's static analyser.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Absence of the change notification annotation in
	the introspection data implies that the property sends change
	notifications (per D-Bus spec).

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Add a special case for conversions to bool for
	compliance with the D-Bus specification.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKBoxingUtils.m:
	Small bugfixes for problems detected by clang.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.h: Expose change notification check method.
	* Source/DKProxy.m: Implement -automaticallyNotifiesObserversForKey:

	Start working on KVO support.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement check whether the property emits change
	notifications.
	* Source/DKPropertyMethod.m: Ensure that mutators are KVC-compliant.
	* Source/DKMethod
	* Source/DKPropertyMethod.m:
	Fix generation of mutator declarations.
	* Documentation/UsingDBus.texi:
	Update docs on property mutators.

	Make properties somewhat KVC-compliant. NOTE: This constitutes an API
	break. If you have code that sets a D-Bus property foo by calling
	-setfoo: please change that to -setFoo:.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKProperty.h
	* Source/DKProperty.m:
	Implement emission of Objective-C 2 style @property declarations.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Modify to expose different property declaration styles.
	* Tools/dk_make_protocol.m: Implement switch between Objective-C 1 and
	2.
	* Documentation/UsingDBus.texi: Document new feature of
	dk_make_protocol.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Type conversion test.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m
	* Source/DKArgument.m
	* Source/DKMethod.m:
	Implement conversion between primitive types.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.m
	* Source/DKPropertyMethod.m:
	Fix generation of declarations for property accessors/mutators.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Updated information about runtime
	interaction.

2011-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document file descriptor support.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m
	* Source/DKArgument.m:
	Add support for boxing DBUS_TYPE_UNIX_FD as NSFileHandle.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m: Implement more type information extraction.
	* Source/type_encoding_cases.h: Import from libobjc2
	* Documentation/readme.texi: Mention MIT licensed file from libobjc2
	* Tests/TestDKArgument.m: Add some tests for the new type info functions.
	* README: Regenerate

	More preliminaries for type conversion improvements.

2011-09-20 Niels Grewe <niels.grewe@halbordnung.de>

        * Source/DKBoxingUtils.h
        * Source/DKBoxingUtils.m:
	Factor out some type conversion logic.
	* Source/DKMethod.h
        * Source/DKArgument.h
        * Source/DKMethod.m
        * Source/DKArgument.m
        * Source/DKPropertyMethod.m
        * Source/GNUmakefile:
	Follow-Up changes for DKBoxingUtils.

2011-09-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Little work on emitting introspection data.
	* Source/DKObjectPathNode.m
	* Source/DKPortNameServer.m
	* Source/DKPort.m
	* Source/DKNotificationCenter.m
	* Tests/TestDKArgument.m:
	Un-bitrot and fix warnings spotted by clang.

	Small maintenance changes.

2011-05-17 Andreas Schik <andreas.schick@web.de>

	* Source/DKNotificationCenter.m: Fix off-by-one error when
	computing the interface from a notification name.

2011-05-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Replace libdbus API-calls with DBusKit methods for inserting and
	removing match rules on the bus. Depend on the bus object to do
	this.
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Add method to test for disconnection. Changes to support recent
	fixes in the notification center.

	Eliminate a problematic code-path by not depending on the
	libdbus API for adding and removing match rules. Turns out we
	can just call the corresponding methods via the bus objects. 

2011-05-12 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.preamble:
	Bump version to 0.2.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Thread safety fixes.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Start implementing generation of XML introspection data.
	* Documentation/announce.0.2.texi: Stub release announcement
	for the next version.

	Thread safety fixes, started working on the generation of D-Bus
	XML introspection data.

2011-04-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Fix incorrect return statement.

2011-04-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Move handling errors on watch
	generation into the observable, make the worker thread perform
	adding the watch if possible. This improves reliability when we
	are operating without synchronization on +initialize.

2011-04-15 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Fix word-size issues.
	* Documentation/install.texi: Bump required gnustep-base
	version to 1.22.0.
	* INSTALL: Regenerate.

2011-04-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Use pseudo interfaces instead of
	@class declarations for private classes that need to be
	initialized before starting the worker thread. This makes clang
	happy.
	* Source/DKArgument.m: Remove extraneous parantheses.
	* Source/DKInterface.m: Fix a bug that caused property
	getters/setters to be registered twice.

	Clang compatibility and bugfixes by Sebastian Reitenbach.

2011-03-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Remove redundant fixup for atomic
	operations linkage errors on 32bit intel platforms.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Import a lot of autoconf stuff to detect whether
	we need to link libgcc for atomic operations.
	* config.make.in: Add flags for atomic operations.
	* aclocal.m4
	* configure:
	Regenerate
	* m4/*
	* config.guess
	* config.sub
	* ltmain.sh
	* libtool
	* install-sh:
	Add libtool/autconf related file.

	Fixes to link libgcc for atomic operations when needed.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Attempt to fix linkage errors for 32bit
	intel platforms.

2011-02-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.gsdoc: Documentation improvement.
	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Document bus-state notifications. Turn strings for notification
	names into globals. 
	* Source/DKEndpointManager.m: Move thread starting code to the
	correct place.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/announce.0.1.texi: Add draft release
	announcement for 0.1.
	* Documentation/GNUmakefile: Add rules for ANNOUNCE
	* GNUmakefile.preamble
	* Source/GNUmakefile:
	Move version number to the top level.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fixed bug with method cache generation in
	the single-threaded case.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Add packaging metadata.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document failure recovery
	procedures.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fix over-release bug where we didn't take
	into account the fact that libdbus also takes ownership for the
	context objects.
	* Source/DKProxy.m: Let DKDBus objects trigger the state sync
	between DKNotificationCenter and the D-Bus connection.
	* Source/DKNotificationCenter.m: Correctly replace the endpoint
	after reconnect. Implement state sync with the new D-Bus
	connection.

	Finish implementing reconnection logic for bus objects and
	notification centers.

2011-02-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Fix the method that fills the ring
	buffer to actually do the expected thing in single-threaded mode.
	Previously, it would directly execute the request even if it was
	requested not to wait, causing unexpected reentrancy for some
	things. Also factor out the code that implements fallback to
	NSInvocation into a separate method.
	* Source/DKPort.m: Use libdbus macro for interface name.
	* Source/DKEndpoint.m: Actually remove DKWatchers from the
	runloop when thy are deallocated.
	* Source/DKProxy.m: Refactor -_disconnected: a bit. Override
	-methodSignatureForSelector: for DKDBus in order to play nice
	with notification center that does need to call private methods
	on DKDBus.
	* Source/DKNotificationCenter.m: Fix signal handling to take
	into account situations where no sender object is present.
	org.freedesktop.DBus.Local.Disconnected is an example.
	* Tests/TestDKProxy.m: Be more generous when waiting for threads
	to terminate.

	Bugfixes to get connection recovery to work. It will now work
	exactly once because the notification center does not yet update
	the new D-Bus connection to match its local state.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy+Private.h: Expose methods necessary for
	connection recovery to sibling classes.
	* Source/DKProxy.m: Make DKDBus reconstruct the port when
	recovery was successful.
	* Source/DKEndpointManager.h: Remove faulted connection table.
	* Source/DKEndpointManager.m: Implement endpoint recovery. Remove
	faulted connection table.

	Implement recovery of D-Bus connections for the bus objects.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where the field index for
	structure was not properly incremented in deserialization.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where deserializing an empty
	array would erroneously trigger an assertion failure.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be more verbose when failing assertions.

2011-02-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.h
	* Source/DKEndpointManager.m:
	Update prototype of method for scheduling endpoint recovery.
	Recovery will not yet be attempted, though.
	* Headers/DKProxy.h: Add ivar to flag disconnected bus objects.
	* Source/DKProxy.m: Start implementing disconnection handling
	for the bus objects. Also untangle DKDBus and
	DKNotificationCenter by overriding a few methods in DKDBus not
	to call into the notification center and by using a special
	DKPort subclass.
	* Source/DKProxy+Private.h: Expose a few more private methods to
	the sibling classes.
	* Source/DKPort.m: Invalidate ports on disconnection from the
	bus. Factor out notification registration into a separate
	method.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Support changes to allow postponing signal registration for bus
	objects.
	* Source/DKNonAutoInvalidatingPort.h
	* Source/DKNonAutoInvalidatingPort.m:
	Add subclass that does not rely on a working notification
	center. Only used by DKDBus instance.
	* Source/DKNotificationCenter.m: Untangle dependencies between
	DKDBus and DKNotificationCenter. DKDBus does no longer require
	the notification center, hence DKNotificationCenter is now
	responsible for registering signal definitions from the bus
	objects and making them watch for the disconnection signal.
	* Source/GNUmakefile: Add new module.

	Start working on recovery of the bus objects after disconnection
	from the bus. Also sanitize the dependencies of
	DKNotificationCenter and DKDBus.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m
	* Source/DKPortNameServer.m:
	Add -dealloc methods to the singletons for completeness.
	* Source/DKPortNameServer.m: Actually initialize the (yet
	unused) tables.
	
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix sel_getType_np check.
	* configure: Regenerate.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKPortNameServer.m
	* Headers/DKPortNameServer.h:
	Add stub implementation of a port name server.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	Add missing files.

2011-02-15 Niels Grewe <niels.grewe@halbordnung.de>

	Merge DBusKit-ThreadRewrite branch. DBusKit now offloads all
	interactions with libdbus to a separate thread and uses
	DKEndpointManager as a gateway to do so. The new behaviour is
	disabled by default and can be enabled by calling [DKPort
	enableWorkerThread].
	This also contains various improvements and fixes bugs that
	were exposed by the new behaviour.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be explicit about the buffer type for
	object path arguments when generating standins.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add specialised deserialisation method for proxy-standins.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Add DKProxyStandin class to be used by the notification
	center while generating notifications.
	* Source/DKSignal.m: Deserialise DBUS_OBJECT_PATH as a standin,
	not as a proxy.
	* Source/DKEndpoint.m: Simplify -addTimeout: callback method.
	* Source/DKProxy.m: Generate method cache for the bus objects on
	init time. (The methods will be used internally anyways.)
	* Source/DKNotificationCenter.m: Avoid reentrancy when handling
	signals by a) making sure the bus objects are already available
	when initialising the notification center and b) using a
	DKProxyStandin when checking whether the signal should be
	handled and scheduling delivery of the notification on the run
	loop. Also fix a stupid va_arg bug.

	Attempt to fix reentrancy problems in DKNotificationCenter.
	Previously, handling a D-Bus signal could trigger the generation
	of DKProxies. Those would in turn would call back into libdbus
	code where things would get locked up. (Problem originally
	reported by Philippe Roussel.)

2011-01-03 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/DKIntrospectionParserDelegate.m:
	Tweak compatibility with different XML parser versions in
	gnustep-base.
	* Documentation/readme.texi: Fix typo.
	* README: Regenerate.

2010-12-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Fix crash in -isEqual: when the receiver is
	being compared with a NSPort subclass other than DKPort
	(reported by Philippe Roussel).

2010-10-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethodCall.m
	* Tests/TestDKArgument.m:
	Fix memory leaks in the test suite.

2010-10-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Implement automatic invalidation of ports
	when the remote disappears from the bus. Applications should
	watch for NSPortDidBecomeInvalidNotification to catch this
	situation.

2010-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Add -isEqual: and -hash implementations
	to DKEndpoint. Improve thread-safety of DKRunLoopContext.
	* Source/DKPort.m: Add -isEqual: and -hash implementations.
	Remove -_proxyAtPath:, which is superfluous with recent
	changes to the DKProxy API.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add accessor method for the port and check proxy scopes by means
	of port equality.
	* Source/NSConnection+DBus.m: Remove use of -[DKPort
	_proxyAthPath:].
	* Tests/TestDKProxy.m: Improve logging for failure in threaded
	test.

	Follow-up changes for DKProxy API change, based on suggestions
	by Fred Kiefer.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangLog: Adjust formating.
	* Tools/dk_make_protocol.m: Point to the correct license file.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.h
	* Source/DKProxy.m:
	Adjust to use DKPort.
	* Source/DKArgument.m
	* Source/DKNotificationCenter.m
	* Source/DKObjectPathNode.m
	* Source/DKPort.m:
	Fixup for changes in DKProxy.

	Make DKProxy use a DKPort instead of a DKEndpoint/service name
	pair. This is the level of abstraction that will be used by
	DKPortNameServer to handle connection invalidation etc.
	Note: This breaks binary compatibility for DKPort subclasses
	with the fragile ABI.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Documentation fixes.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Include property methods in protocol
	declarations (no Objective-C 2 style "@property()"-stuff yet)
	* Documentation/UsingDBus.texi: Document property support.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix to respect the semantics of
	dbus_message_iter_init().

2010-09-12 Phillipe Rouselle

	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Include string.h

	With the last modifications to base and libobjc2, each string
	function would generate a warning.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add -installProperties method.
	* Source/DKIntrospectionParserDelegate.m: Enable parsing
	properties.
	* Source/DKProperty.h: Fix typo and rename method.
	* Source/DKProperty.m: Implement -copyWithZone:
	* Source/DKPropertyMethod.m: Fix selector string for setters.
	* Source/DKProxy.m: Trigger generation of property methods

	Enabled property support. Getters are already working, setters
	not so much.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m: Fix (benign) dead store.
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKProxy.m
	* Source/DKSignal:
	Fix memory leaks.

	Fix bugs found by the clang static analyzer.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
	* GNUmakefile: Add DKProperty.m and DKPropertyMethod.m to the
	build.
	* Source/DKArgument.h: Tiny documentation clarification.
	* Source/DKMethod.h: Expose some methods needed by the
	subclasses.
	* Source/DKMethod.m: Introduce a slightly more flexible way of
	comparing D-Bus and Obj-C method signatures. 
	* Source/DKProperty.h: Remove redundant attribute field.
	* Source/DKProperty.m: Implement DKProperty to hold
	introspection data about properties.
	* Source/DKPropertyMethod.h: Complete header.
	* Source/DKPropertyMethod.m: Slight cleanup for the accessor,
	implement the mutator method.

	Even more work on properties.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix typo. Protect against potential
	memory leak when unmarshalling a variant type argument raises an
	exception.
	* Source/DKProperty.h: Changes to the class layout, added some
	method declarations.
	* Source/DKPropertyMethod.h
	* Source/DKPropertyMethod.m:
	Began stubbing out support for property accessor methods.

	Further work on properties. (Not yet connected to the build)

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile: Fix copy-and-paste error.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangeLog: Generate from `svn log'.
	* Source/DKSignal.h: Documentation fix.
	* Source/DKProperty.h: Add header.

	Begin conceptualizing property support. Add ChangeLog.

2010-09-10  Richard Frith-Macdonald <rfm@gnu.org>

	* GNUmakefile: warn if gnustep-make not found

2010-09-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix bug reported by Philippe Roussel. (Note to self:
	Unit tests are only useful if you actually run them…)

2010-09-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix compilation of testcases if DBusKit is not yet installed.

2010-08-23  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/GNUmakefile.postamble: Fix build by creating link to the header
	dir. (reported by Philippe Roussel).
	* Documentation/GNUmakefile.postamble: Fix removal of documentation on
	`make uninstall'.

2010-08-20  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Only build documentation if makeinfo and texi2pdf are
	available.
	* Source/DKNotificationCenter.m: Fix bug that caused a sanity check to
	be skipped.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/install.texi: Mention the nonstrict flag.
	* INSTALL: Regenerate.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix cast

2010-08-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation for
	-[DKObservable matchesUserInfo:], simplified generation of observables
	by the notification center.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* COPYING: Add LGPL.
	* GNUmakefile: Add documentation to the build.
	* GNUmakefile.preamble: Add version variable.
	* Documentation/GNUmakefile
	* Documentation/GNUmakefile.postamble
	* Documentation/readme.texi
	* Documentation/install.texi
	* Documentation/DBusKit.gsdoc:
	Build README and INSTALL as well as reference documentation.
	* Headers/DKProxy.h
	* Headers/DKPort.h
	* Headers/DNotificationCenter.h:
	Mark ivars as private. Minor documentation improvements.
	* README
	* INSTALL:
	Regenerate.
	
	Improvements to the documentation.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumUtilityPanel.h,
	* Examples/Apertium/ApertiumUtilityPanel.m:
	Add files missing from last commit.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm:
	Make language selection panel an utility window.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Clarify removal semantics for
	observations.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: More consistent implementation of
	adding/removing observers.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Simplify removal of observations.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Orthographical corrections.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi: Reorder menu.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi
	* Documentation/ExposingObjects.texi
	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Further work on the manual.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation
	* Documentation/DBusKit.texi,
	* Documentation/GNUmakefile
	* Documentation/Introduction.texi
	* Documentation/fdl-1.3.texi:
	Begun writing a guide on how to use D-Bus with GNUstep:

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/COPYING
	* Tools/dk_make_protocol.m:
	Add license.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUMakefile
	* Tools/GNUmakefile
	* Tools/dk_make_protocol.m:
	Add primitive tool to generate protocol declarations from .interface
	files.
	* Source/DKInterface.m: Small tweak to the generation of protocol
	declarations.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKPort.m
	* Source/DKProxy.m:
	A few more documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKInterface.h
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionParserDelegate.h
	* Source/DKMessage.h
	* Source/DKMethod.h
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKSignal.h:
	Documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DBusKit.h: Add DKNotificationCenter.h
	* Source/DKProxy.m: Use correct path to the bus object.
	* Source/DKNotificationCenter.m: Observe name changes so that sender
	rules for observables stay up to date.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation. Fix removal
	of signal-match from D-Bus.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Small documentation improvement.
	* Headers/DKNotificationCenter.h: Documented DKNotificationCenter. Added
	ivar.
	* Source/DKProxy.m: Override -respondsToSelector:. Protect generation of
	the method cache so that a remote error doesn't leave the object in an
	unusable state.
	* Source/DKEndpoint.m: Fix DKWakeUp(). (Previously, it would create
	unwanted reentrancy.)
	* Source/DKNotificationCenter.m: Primitive support for observing D-Bus
	signals.
	
	Preliminary support for D-Bus signals. Documentation
	improvements.

2010-08-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* Source/DKInterface.[hm]:
	Remove dispatch table from DKProxy and let DKInterface generate it
	instead.
	* Source/DKInterface.[hm]: Fix memory leak. Rename -methodForSelector:
	to -DBusMethodForSelector:. Also move registration of signals here.
	* Source/DKMethod.m: Generate smarter method declarations.
	* Source/DKIntrospectionParserDelegate.m: Return nil from -leaf instead
	of NSNull. Improve handling signals.
	* Source/DKSignal.[hm]: Implement generation of userInfo dictionaries
	for notifications from received signals.
	* Source/DKMethodCall.m: Small indentation fix.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Bugfixes. Continue implementing generation of notifications from
	signals.
	* Tests/TestDKMethodCall.m
	* Tests/TestDkMethod.m:
	Use new method name.
	
	A few bugfixes and improvements suggested by Fred Kiefer.
	Continued work on D-Bus signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Implement method to add match rules for signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Remove workaround for some libdbus oddity I was
	experiencing earlier.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	API refinements for DKDBus.
	* Headers/DKPort.h
	* Source/DKPort.m
	* Tests/TestDKProxy.m:
	Finish replacing subclasses with equivalent initializers. Adopt
	test case.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Mark some functions as inlineable.
	* Source/DKEndpoint.[hm]: Carry over information about the new
	endpoint when an old one is being reused. Fix bug in
	-initWithConnectionTo: where the new connection never got assigned.
	Rearrange method order. Improve documentation a bit.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Move rule generation into DKObservable helper-class.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Remove struct nonsense in favour of real objects.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKSignal.[hm]: Make DKSignal useful.
	* Header/DKNotificationCenter.h: Add notificationNames ivar.
	* Source/DKNotificationCenter.m: Implement registration of signals and
	notification names.
	* DKIntrospectionParserDelegate.m: Parse signals and trigger their
	registration with the appropriate notification center.
	* Tests/TestDKProxy.m: Fix test for errors returned by remote objects.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Clarify exception name.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Add methods to generate rules for
	matching D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add DKDBus subclass for getting shared proxies to the
	org.freedesktop.DBus services on their respective busses.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement -_uniqueName to get the unique name of a service from the bus.
	* Headers/DKPort.h: Add "don't know" member value to the bus type
	enumeration.
	* Source/DKPort.m: Use DKDBus instead of -getBusObject magic.
	* Source/DKEndpoint.[hm]: Implement -DBusBusType to get the type of bus
	an endpoint is connected to.
	* Source/DKInterface.[hm]: Add some more methods for signals/properties.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m
	* Source/GNUmakefile:
	Add very much work-in-progress notification center class for managing
	D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKSignal.m
	* Source/DKObjectPathNode.m:
	Fix various issues in -copyWithZone:.
	* Source/DKInterface.[hm]: Begin adding plumbing for signals/properties.
	* Source/DKIntrospectionNode.[hm]: Add -annotations method to get the
	annotation dictionary for a node.
	* Tests/TestDKMethod.m: Fix the copy test to use the correct selector.
	
	Fix NSCopying for DKIntrospectionNode and subclasses.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethod.m: Add test for copying parts of the introspection
	graph (fails at the moment).

2010-08-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKPort.h
	* Source/DKPort.m:
	Add DKDBusBusType enumeration and related initializer.
	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m
	* Source/DKSignal.m:
	Adopt NSCopying for DKIntrospectionNode and subclasses.
	* Source/NSConnection+DBus.m: Add further integration methods (commented
	out until DKPortNameServer can be committed).

2010-07-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add an explicit NSCondition and a state variable to make synchronisation
	more robust (and readable).
	* Tests/TestDKProxy.m: Adopt to changed code and add test for calling
	methods from multiple threads.
	
	Thread safety improvements.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h
	* Source/DKProxy.m:
	Disable asnychronous generation of the method cache again (it doesn't
	seem to be working reliably).

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Bugfix.
	* Source/DKEndpoint.[hm]: Support watchers and timers on multiple
	run-loops.
	* Source/DKProxy.m: Allow D-Bus methods to be called from multiple
	threads. Also enable asynchronous generation of the method cache.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Attempt to clarify the code path for method lookup.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Rename -_methodForSelector:block: to
	-_methodForSelector:waitForCache:.
	* Source/DKArgument.m: Add cast that might be needed.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Really fix the initializer this time.
	* Source/DKIntrospectionParserDelegate.m: Smarter handling of the root
	node.
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKProxy+Private.m:
	Move some more methods that are often used by the internal classes into
	DKProxy+Private.h.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Implement retrieval of a proxy for a DKObjectPathNode.
	
	More cleanup and minor improvements.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m
	* Source/DKMethod.[hm]
	* Source/DKSignal.[hm]:
	Simplify (or remove) method and signal initalizer to not require
	the interface name. Remove _DKMethodIntrospect.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement _DKInterfaceIntrospectable to replace _DKMethodIntrospect.
	* Source/DKInterface.m: Normalize selectors before table
	lookups/updates.
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m:
	Adapt test cases to use _DKInterfaceIntrospectable.
	
	Refactor the global introspection method into a global introspection
	interface to allow simpler initializers for DKMethod and DKSignal.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/GNUmakefile
	* Source/DKObjectPathNode.[hm]
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add DKObjectPathNode class and protocol (handles object trees and
	interfaces). Implement DKObjectPathNode protocol in DKProxy and expose
	it via DKProxy+Private.h.
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m
	* Source/DKOutgoingProxy.h
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/NSConnection+DBus.m:
	Include new DKProxy+Private.h instead of the public header.
	* Source/DKMethod.[hm]
	* Source/DKInterface.[hm]
	* Source/DKIntrospectionParserDelegate.m
	* Tests/TestDKMethod.m:
	Rename initializers of DKMethod and DKInterface to follow the naming
	scheme of the superclass more closely.
	* Source/DKIntrospectionParserDelegate.[hm]: Use the parent to store the
	introspection tree and not the parser delegate.
	
	Clean up the generation of the introspection data so that the parser
	delegate doesn't need to keep the generated tree around. Also be more
	consistent about naming initializers in subclasses of
	DKIntrospectionNode.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Prevent libdbus from calling _exit() when
	the bus goes away.

2010-07-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m:
	Remove parser delegate methods and ivars.
	* Source/DKSignal.[hm]
	* Source/GNUmakefile:
	Add stub for handling signals.
	* Source/DKIntrospectionParserDelegate.[hm]: Consolidate XML parsing and
	keep a stack for the XML tree.
	
	Refactor introspection handling so that the generation of the
	introspection graph happens entirely from within
	DKIntrospectionParserDelegate.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Only refer to D-Bus methods by their untyped
	selector IDs.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumTranslator.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix memory leaks generated by the fact that I copy and paste too much
	without thinking.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/NSConnection+DBus.m:
	Add -proxyAtPath: method to obtain proxies for non-root objects of a
	D-Bus service.
	* Source/GNUmakefile: Add NSConnection+DBus.[hm] to build.
	* Source/DKPort.m: Rearrange so that proxy generation is separated from
	encoding the proxy for use in NSConnection.
	* Headers/DBusKit.h: Add DKProxy.h and NSConnection+DBus.h.
	* Tests/TestDKProxy.m: Test for fetching proxies to non-root objects.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Improve error reporting.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Make DKPort check whether the requested remote
	is available on the bus.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Use sel_get_type() instead of accessing a
	selector's type field directly.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Move from NSLog() to NSDebugMLog()
	* Source/DKProxy.[mh]: Move from NSLog() to NSDebugMLog(). Implement
	-setPrimaryDBusInterface:.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Check whether making calls to
	the org.apertium.info object on D-Bus raises an exception. Also more
	checking when generating the localized language string for the UI.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Strip whitespace from mode strings.
	* Examples/Apertium/ApertiumServer.m: Properly handle exceptions from
	the D-Bus side.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples, Examples/Apertium
	* Examples/Apertium/ApertiumController.h
	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/ApertiumInfo.h
	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumInfo.plist
	* Examples/Apertium/ApertiumServer.h
	* Examples/Apertium/ApertiumServer.m
	* Examples/Apertium/ApertiumTranslator.h
	* Examples/Apertium/ApertiumTranslator.m
	* Examples/Apertium/COPYING
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/data.info
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm
	* Examples/Apertium/SourceLanguagePopup.h
	* Examples/Apertium/SourceLanguagePopup.m
	* Examples/Apertium/main.m:
	Commit a little example demonstrating what is possible with DBusKit. The
	Apertium.service hooks into the Apertium machine translation system via
	D-Bus and exposes it as a service. You can thus use the translator from
	within any GNUstep application. The DBusKit-specific portions are
	contained in ApertiumTranslator.m and ApertiumInfo.m.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Turn NSLog() calls into NSDebugMLog().
	Fix a bug where timers were not tracked, causing them to not be
	invalidated properly (they would sometimes fire after the target object
	disappeared).

2010-07-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Guard against nil values as arguments. Fix bug in
	* marshalling variant type arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix bug where strings would be messed up
	because of an improper cast.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile: Keep gnustep-make from installing the
	testsuite.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Add test case for methods that contain boxed
	and non-boxed arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.[hm]: Be more flexible about boxing. Decide
	whether argument should or shouldn't be boxed based on the
	related invocation.
	* Source/DKMethodCall.[hm]
	* Source/DKProxy.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKProxy.m:
	Remove references to the old argument types which did statically
	decide on a boxing scheme.
	* Headers/DKProxy.h: Remove unused ivar.
	
	Make better use of D-Bus and Objective-C introspection data to
	decide on the fly whether an argument to a D-Bus method should
	be boxed in an Objective-C object or not.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.[hm]:
	Add -methods to return the array of all methods in the interface.
	* Source/DKIntrospectionNode.[hm]: Add -setParent: method that is
	needed to reparent nodes from the parser delegate to the proxy
	that is using them.
	* Source/DKIntrospectionParserDelegate.[hm]: Add class to hold
	the constructed introspection graph.
	* Source/DKMethod.m: Remove call to DKProxy's _installMethod:...
	method.
	* Source/DKProxy.m: Remove parser delegate methods and reorganise
	the code so that DKProxy itself is responsible for installing
	the methods found by introspection.
	* Source/GNUmakefile: Add DKIntrospectionParserDelegate.m to the
	build.
	
	Separate parsing of introspection data from DKProxy, which is now
	also responsible for installing methods.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionNode.m
	* Source/DKProxy.m:
	Simplify -proxyParent method.

2010-07-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.postamble
	* Source/GNUmakefile
	* Source/GNUmakefile.postamble
	* Source/Tests
	* Tests
	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Reorganise the project so that the tests are built as a separate
	subproject and linked against the framework.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Remove erratic parentheses around protocol
	names.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m:
	Replace side-effect ridden NSAsserts.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Make proper use of selector types to
	generate the method signature so that methods can be called
	unmangled without boxing the arguments.
	* Source/Tests/TestDKProxy.m: Implement test for unboxed method
	calls.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Some bugfixes. Implement handling mangled
	selectors.
	* Source/Tests/TestDKProxy.m: Test sending unboxed method calls
	with mangled selectors.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix statement order and typo.
	* Source/Tests/TestDKProxy.m: Test for returning errors from
	D-Bus.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Add needed ivars.
	* Source/AsyncBehavior.h: Minor addition.
	* Source/DKArgument.[mh]: Remove -proxyParent method (now in
	superclass)
	* Source/DKInterface.h: Declare -mangledName.
	* Source/DKInterface.m: Implement selector/method-map and XML
	parser delegate methods.
	* Source/DKIntrospectionNode.[mh]: Move -proxyParent method here.
	Handle annotations.
	* Source/DKMethod.[hm]: Implement -selectorString method to
	generate selector names. Also add XML parser delegate methods.
	* Source/DKMethodCall.m: Fix bug where an D-Bus error was used
	unitialized.
	* Source/DKProxy.m: Remove async stuff (pretty superfluous right
	now). Fix various bugs in selector resolution and implement
	building the method cache.
	* Source/Tests/TestDKProxy.m: Add tests for new functionality.
	
	Implement the remaining bits of basic proxy functionality.
	Arbitrary D-Bus methods can now be called when their arguments
	are boxed as Objective-C types. Calling methods without boxing
	to come.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix -isDictionary method for array
	arguments.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove isa-swizzling in favour of creating
	the correct objects in the initalizers.

2010-07-03  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove
	incorrect -release (spotted by Fred Kiefer).
	* Source/Tests/TestDKMethodCall.m
	* Source/Tests/TestDKArgument.m:
	Small test improvements.

2010-07-02  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Add macros to do stuff asynchronously
	if possible.
	* Source/DKInterface.[hm]: Remove superfluous -parent method.
	* Source/DKMethod.m: Some more modularisation. Add comparison
	method. Calculate offsets and sizes for signatures correctly.
	* Headers/DKProxy.h: Add instance variables.
	* Source/DKProxy.[hm]: Implement -forwardInvocation: and triggers
	to generate the method cache (actual generation of the cache
	still missing).
	* Source/Tests/TestDKProxy.m: Add test for calling Introspect()
	via the built-in _DKMethodIntrospect.
	* Source/Tests/TestDKArgument.m: Minor rearrangement.
	
	Made dispatching D-Bus method calls work via -forwardInvocation:.
	As of yet, you can only call -Introspect (this is needed to obtain the
	introspection data used to build the actual method cache).

2010-06-28  Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix autoconf test for location of runtime.h
	* configure: Regenerate

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[hm]: Turn DKRunLoopContext into an instance
	variable. Some features need access to the run loop and run loop
	mode information.
	* Source/DKMethodCall.[hm]: Add implementation of synchronous
	method calls and stubbed out support for asynchronous calls.
	* Source/GNUmakefile: Add new modules.
	* Source/Tests/TestDKMethodCall.m: Add test for introspection
	method call.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Fixed missing include.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Add (un-)marshalling methods to the header.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[mh]:
	Add accessor method for the DBusConnection on libdbus-level.
	* Source/GNUmakefile
	* Source/DKMessage.[mh]:
	Add primitive class for sending message to D-Bus.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKArgument.m: Add test for fallback-to-struct
	feature when encoding dictionaries to variant types.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m, Source/Tests/TestDKArgument.m: Fix
	generation of signatures for objects that are passed as variant
	type arguments. Some test-cases for this.

2010-06-24  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.[mh]: Implement marshalling of variant
	types. Also add the ability to customize the unboxing of
	objects.
	* Source/DKEndpoint.m
	* Source/DKMethod.m
	* Source/DKPort.m:
	Compile fixes for clang.
	* Source/DKOutgoingProxy.[mh]
	* Source/GNUmakefile:
	Add stub implementation for outgoing proxies.
	* Source/DKProxy.m: Add method to distinguish outgoing and
	incoming proxies.
	* Source/Tests/TestDKProxy.m: Fix runtime.h include.
	* Source/Tests/TestDKArgument.m: Add test for custom unboxing
	methods.
	* Source/config.h.in
	* config.make.in
	* configure.ac
	* GNUmakefile.postamble:
	Update configure script and paraphernalia to check for advanced
	runtime features.
	* configure: Regenerate
	
	Finish implementation of (un-)marshalling values between
	NSInvocation and D-Bus messages. More flexible scheme for
	unboxing values. Various smaller fixes.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling D-Bus variant types.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: (Un-)marshalling of D-Bus structs.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Finish (un-)marshalling of dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling of D-Bus
	dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: WIP (un-)marshalling of complex types.

2010-06-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	Source/DKInterface.[hm]:
	Add WIP representation of D-Bus interfaces.
	* Source/DKIntrospectionNode.[mh]: Basic XML parser delegate
	methods.
	* Source/DKMethod.m: Remove superflous method signature code.
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKArgument.h:
	Work on marshalling/unmarshalling between NSInvocation and D-Bus
	messages.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Remove leftover duplicate
	code.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile,
	* Source/Tests/TestDKMethod.m:
	Factor common code out into DKIntrospectionNode and make
	DKArgument and DKMethod use it.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Also use
	org.freedesktop.DBus.Method.NoReply annotation to mark the
	method as oneway.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h
	* Source/DKMethod.m,
	Source/Tests/TestDKMethod.m:
	Make DKMethod generate method declarations.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/GNUmakefile
	* Source/Tests/TestDKProxy.m:
	Work on method name unmangling. Now partially working, still ugly
	as hell.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKMethod.m
	* Source/Tests/TestDKArgument.m:
	Tests for assignments in the initializers.
	* Source/DKProxy.m
	* Headers/DKProxy.h:
	-hasSameScopeAs: method to test whether two proxies fall into
	the scope of one and the same D-Bus service.
	* Source/DKArgument.h: Expose a few accessors.
	* Source/DKArgument.m: Fix bug in the name assignment. Implement
	-name method.
	Let the proxy do the scope checking.
	* Source/DKMethod.m: Shuffle a few statements around for more
	natural ordering.
	* configure.ac: Leave a TODO about needing to fix the configure
	script ugliness.
	* config.make.in: Another attempt to get linking done properly.
	
	Many improvement suggested by Fred Kiefer.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* config.make.in:
	Fix failure to link against libdbus (reported by Fred Kiefer).
	Initial work on method-name mangling.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: short is apparently always 16bit.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix unboxing of doubles.
	* Source/Tests/TestDKArgument.m: Add test cases for unboxing.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m:
	Implement unboxing of simple types. Fix boxing of 64bit values.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKProxy.m
	* Source/GNUmakefile,
	* Source/GNUmakefile.postamble
	* Source/Tests/TestDKArgument.m,
	* Source/Tests/TestDKPort.m:
	Add a few more tests and some dummy methods.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m,
	* Source/Tests/TestDKArgument.m:
	Boxing of simple types with associated test-coverage.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile
	* Source/Tests/TestDKMethod.m:
	Add initial implementation of DKMethod to encapsulate D-Bus
	method information.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	* Source/GNUmakefile.postamble:
	Provide link to	public headers when compiling the tests.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: autorun ukrun for tests.
	* configure.ac
	* config.make.in
	* Source/GNUmakefile:
	Check for and use -Wdeclaration-after-statement
	* Source/DKArgument.m
	* Source/DKPort.m:
	Fix C99isms.
	* Source/Tests/TestDKArgument.m: Separate unit tests from source.
	Properly include local headers.

2010-06-08  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/GNUmakefile
	* Source/TestDKArgument.m:
	Fix DKArgument problems. Add test cases for DKArgument (requires
	UnitKit).

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Support generating D-Bus type signatures from DKArgument trees.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Made DKArgument collect all subtypes of an argument from a D-Bus
	message. Totally untested, though.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Place -release call properly. Thanks to Fred
	Kiefer for pointing that out.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m,
	* Source/GNUmakefile:
	WIP representation of D-Bus argument information.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Simpify DKPort a bit.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Actually, -[NSProxy dealloc] can be called.
	Pointed out by Fred Kiefer; no idea why I thought that wasn't
	possible…

2010-05-30  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Headers/DKProxy.h
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/GNUmakefile:
	Add a dummy proxy class. Finish implementation of the
	NSConnection integration for ROOTPROXY_REQUEST messages:
	Connections to D-Bus can now return their own proxies.

2010-05-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Call self instead of super for DKPort subclass
	initializers.

2010-05-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fixes a bug where returning an pre-existing
	DKEndpoint would result in a teardown of the D-Bus connection.
	Also work around some libdbus strangeness that needs further
	investigation.
	* Source/DKPort.m: Slightly more expressive designated
	initializer. Begin stubbing out integration into NSConnection.
	* Headers/DKPort.h: Add initializer.

2010-05-10  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile.postamble
	* Headers/config.h.in
	* aclocal.m4
	* configure
	* configure.ac:
	Add configure script and paraphernalia (but make still
	regenerates config.make on distclean).
	* Source/DKPort: Simple initializers for DKPort.

2010-05-09  Niels Grewe <niels.grewe@halbordnung.de>

	* .
	* GNUmakefile
	* GNUmakefile.postamble
	* Headers
	* Headers/DBusKit.h
	* Headers/DKPort.h
	* Headers/config.h.in
	* Source
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/GNUmakefile
	* config.make.in
	* configure.ac:
	Import code in preparation for GSoC.

2013-12-30 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Improve validity checking on object
	paths.

2013-07-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Add missing include. (Reported by Philippe Roussell)
	Implement some stuff missing for proper D-Bus facing objects.
	* Source/DKObjectPathNode.h: Expose another method for DKOutgoingProxy to use.
	* Source/DKPort.m: Add some debugging for object path name handling.
	* Examples/HelloWorldService/main.m: Tweak export.
	* Examples/HelloWorldService/test.xml: Add test interface. 

2013-07-02 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Expose some DKProxy internals for subclassing.
	* Source/DKOutgoingProxy.m: Allow introspection data to be added from a
	file (not a public API, though)

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check clang_Cursor_getArgument() since it's missing in earlier libclang versions
	* configure: Regenerate
	* ChangeLog: Reformat a few inconsistencies

2013-07-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKOutgoingProxy.m: Implement -handleDBusMessage: on the outgoing proxy.

2013-05-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Replace deprecated self->isa access with object_getClass()
	* Documentation/Introduction.texi: Fix typo

2012-11-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Replace incorrect NSDebugMLog with NSDebugFLog.
	Reported by Philippe Roussell.

2012-09-23 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKNotificationCenter.m:
	Deal with clang warning about casting SEL to uintptr_t.

2012-08-22 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Check for libclang.
	* configure: Regenerate.
	* Documentation/install.texi: Document optional libclang
	requirement.
	* INSTALL: Regenerate
	* Source/config.h.in: Macro for libclang check.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Add D-Bus type derivation based on libclang. Fix potential index out of
	bounds bug in selector name mangling.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add methods for generating arguments from CXTypes.
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Add methods for generating methods from CXCursors.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add methods for generating interfaces by runtime-inspecting protocols 
	or classes.
	* Source/GNUmakefile: Explicitly link Objective-C and Foundation libs.
	* Tests/TestDKInterface.m:
	Tests for interface generation from introspection data.

	Further work on introspection data generation.

2012-08-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m:
	Fix typos.

2012-08-17 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Add a second check for dbus/dbus.h just in case
	that pkg-config returns nonesense.
	* configure: Regenerate
	* Source/DKObjectPathNode.m: Import DKEndpoint header.

	Minor build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>
	* configure.ac: Properly set compiler flags for C99 and detect
	the runtime flavour.
	* configure: Regenerate.
	* config.make.in: Add C99 flags when needed.
	* Source/config.h.in: Macros for choosing typed selector
	introspection method.
	* Source/DKProxy.m
	* Source/DKOutgoingProxy.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m:
	GCC compatibility tweaks
	* Tools/GNUmakefile: Explicitly link against libdbus.

	Build compatibility tweaks.

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Disable -Wdeclaration-after-statement
	* configure: Regenerate
	* Source/DKArgument.m: Move declaration before statement
	(spotted by Philippe Roussel)

2012-08-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Temporarily enable -Wno-deprecated-declarations
	for clang; check whether we need to include objc/encoding.h.
	* configure: Regenerate.
	* Headers/DKNotificationCenter.h: Add deprecation notices for
	methods using features that are going away. (New API still
	missing).
	* Source/config.h.in: Add macro for objc/encoding.h check.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add convenience method for generating arguments from
	Objective-C type encodings.
	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m:
	Implement conversion from selectors to method names; fix type
	mapping for id (it was incorrectly mapped to
	DBUS_TYPE_OBJECT_PATH, but should be mapped to
	DBUS_TYPE_VARIANT).
	* Source/DKMethod.h
	* Source/DKMethod.m:
	Implement generation of methods from runtime introspection
	data.
	* Source/DKMethodReturn.m: Change method order.
	* Source/DKObjectPathNode.m: Fix memory leak.
	* Source/DKOutgoingProxy.m: Add some method stubs.
	* Source/DKPort.m: Fix bug where the root object was lead to
	believe that it was its own child.
	* Test/TestDKMethod.m: Add tests for selector mangling and
	method generation from runtime data structures.

2012-05-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Add DKMethodReturn.m
	* Source/DKProxy+Private.h
	* Source/DKProxy.m: 
	Tweak generation of introspection data.
	* Source/DKMethodReturn.h
	* Source/DKMethodReturn.m:
	Implement replies to method calls.
	* Source/DKMessage.m: Add some debugging.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Adopt DKExportableObjectPathNode protocol.
	* Source/DKEndpointManager.m: Fix incorrect use of libdbus
	APIs.
	* Source/DKPort+Private.h
	* Source/DKPort.m:
	Register exported objects with the D-Bus daemon.
	* Source/DKObjectPathNode.h: Another revision of the object
	path protocol; add subprotocol for exportable nodes.
	* Source/DKObjectPathNode.m: Implement revised object path
	protocol; tweak generation of introspection data; Implement
	handling of method calls from D-Bus (object path nodes do not
	represent any local object and only respond to introspection
	requests.
	* Tools/dk_make_protocol.m: Follow up changes for revised 
	object path protocol.
	* Tests/TestDKPort.m: Revoke D-Bus object registrations after
	the tests.
	* Examples/HelloWorldService: Initial scaffolding for an example
	service that vends objects to D-Bus.

	First batch of object vending changes. We can now succesfully 
	export arbitrary object graphs to D-Bus and they can (partially)
	be introspected by other clients on the bus. Exported objects 
	don't respond to message sends yet, though.

2012-04-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix marshalling of vendable local objects.
	* Headers/DKProxy.h
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Implement revised object path protocol and proper -isKindOfClass:
	method.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Revise DKObjectPath protocol and implement special root object path
	subclass. Fix name generation for OPNs.
	* Source/DKOutgoingProxy.h
	* Source/DKOutgoingProxy.m:
	Stub out some methods.
	* Headers/DKPort.h
	* Source/DKPort+Private.h
	* Source/DKPort.m: Implement more of the object path handling and 
	add a private header to expose some of it.
	* Tools/dk_make_protocol.m: Adapt to new introspectable interface.
	* Tests/TestDKPort.m: Tests for object path handling.
	* Tests/TestDKProperty.m: More flexible test for XML serialization.

	More work on vending objects to D-Bus.

2012-04-21 Phillipe Roussel <p.o.roussel@free.fr>

	* Source/NSConnection+DBus.m: Move declarations before statements.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/DKOutgoingProxy.h
	* Headers/DKPort.h
	* Source/DKPort.m
	* Source/NSConnection+DBus.m:
	Preliminary changes for vending objects.
	* Source/DKArgument.m: Remove redundant conditional branch.
	
	Start work on scaffolding for vending objects to D-Bus.

2012-03-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Fix declaration of queueCount ivar.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/NSConnection+DBus.m: Replace -rootProxy in NSConnection with
	the implementation from our category.
	* Tests/TestDKProxy.m: Test to verify that we are not breaking
	-rootProxy for standard DO.

2012-01-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix emission of argument names
	* Source/DKMethod.m: Fix bug in specifying argument directions.
	* Source/DKObjectPathNode.m: Actually comply to the D-Bus spec when 
	writing introspection data.
	* Source/DKProxy.m: Implement XML introspection data generation
	* Source/DKProxy+Private.h: Declare -XMLNode on DKProxy
	* Tests/TestDKArgument.m
	* Tests/TestDKInterface.m
	* Tests/TestDKMethod.m
	* Tests/TestDKProxy.m:
	Make tests more robust.

2012-01-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKInterface.m
	* Source/DKSignal.m:
	Implement XML introspection data generation.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKInterface.m: Add some tests for interfaces.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKSignal.h
	* Source/DKSignal.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Use constants for argument directions consistently.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement generation of XML introspection data.
	* Tests/GNUMakefile: Add new test file.
	* Tests/TestDKProperty.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Declare -XMLNode on all introspection nodes.
	* Source/DKMethod.m: Implement generation of MXL introspection data.
	* Tests/TestDKMethod.m: Add test for XML introspection data generation.

2012-01-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for annotated XML introspection data.
	
2012-01-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Add test for XML generation of arguments.
	* Source/DKArgument.h
	* Source/DKArgument.m: Small tweaks to XML generation.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Improve last commit.
	* configure: Regenerate.

2011-12-20 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: When selecting an Objective-C compiler, prefer the
	value of $CC if $OBJC is not set. Also, if the user does not specify
	a specific compiler and clang is installed, default to using clang.
	* config.make.in: Update for new compiler selection.
	* configure: Regenerate.

2011-10-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile
	* Documentation/dk_make_protocol.1
	* Documentation/GNUmakefile.postamble:
	Add manpage for dk_make_protocol. 

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix memory leak.
	* Source/DKNotificationCenter.m: Rearrange to silence invalid warning
	about use-after-free.

	Bugfixes for problems detected by clang's static analyser.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Absence of the change notification annotation in
	the introspection data implies that the property sends change
	notifications (per D-Bus spec).

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Add a special case for conversions to bool for
	compliance with the D-Bus specification.

2011-10-05 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKBoxingUtils.m:
	Small bugfixes for problems detected by clang.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.h: Expose change notification check method.
	* Source/DKProxy.m: Implement -automaticallyNotifiesObserversForKey:

	Start working on KVO support.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProperty.m: Implement check whether the property emits change
	notifications.
	* Source/DKPropertyMethod.m: Ensure that mutators are KVC-compliant.
	* Source/DKMethod
	* Source/DKPropertyMethod.m:
	Fix generation of mutator declarations.
	* Documentation/UsingDBus.texi:
	Update docs on property mutators.

	Make properties somewhat KVC-compliant. NOTE: This constitutes an API
	break. If you have code that sets a D-Bus property foo by calling
	-setfoo: please change that to -setFoo:.

2011-10-01 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKProperty.h
	* Source/DKProperty.m:
	Implement emission of Objective-C 2 style @property declarations.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Modify to expose different property declaration styles.
	* Tools/dk_make_protocol.m: Implement switch between Objective-C 1 and
	2.
	* Documentation/UsingDBus.texi: Document new feature of
	dk_make_protocol.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Type conversion test.

2011-09-25 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.h
	* Source/DKBoxingUtils.m
	* Source/DKArgument.m
	* Source/DKMethod.m:
	Implement conversion between primitive types.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.m
	* Source/DKPropertyMethod.m:
	Fix generation of declarations for property accessors/mutators.

2011-09-24 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Updated information about runtime
	interaction.

2011-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document file descriptor support.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m
	* Source/DKArgument.m:
	Add support for boxing DBUS_TYPE_UNIX_FD as NSFileHandle.

2011-09-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKBoxingUtils.m: Implement more type information extraction.
	* Source/type_encoding_cases.h: Import from libobjc2
	* Documentation/readme.texi: Mention MIT licensed file from libobjc2
	* Tests/TestDKArgument.m: Add some tests for the new type info functions.
	* README: Regenerate

	More preliminaries for type conversion improvements.

2011-09-20 Niels Grewe <niels.grewe@halbordnung.de>

        * Source/DKBoxingUtils.h
        * Source/DKBoxingUtils.m:
	Factor out some type conversion logic.
	* Source/DKMethod.h
        * Source/DKArgument.h
        * Source/DKMethod.m
        * Source/DKArgument.m
        * Source/DKPropertyMethod.m
        * Source/GNUmakefile:
	Follow-Up changes for DKBoxingUtils.

2011-09-09 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m:
	Little work on emitting introspection data.
	* Source/DKObjectPathNode.m
	* Source/DKPortNameServer.m
	* Source/DKPort.m
	* Source/DKNotificationCenter.m
	* Tests/TestDKArgument.m:
	Un-bitrot and fix warnings spotted by clang.

	Small maintenance changes.

2011-05-17 Andreas Schik <andreas.schick@web.de>

	* Source/DKNotificationCenter.m: Fix off-by-one error when
	computing the interface from a notification name.

2011-05-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Replace libdbus API-calls with DBusKit methods for inserting and
	removing match rules on the bus. Depend on the bus object to do
	this.
	* Source/DKProxy+Private.h
	* Source/DKProxy.m:
	Add method to test for disconnection. Changes to support recent
	fixes in the notification center.

	Eliminate a problematic code-path by not depending on the
	libdbus API for adding and removing match rules. Turns out we
	can just call the corresponding methods via the bus objects. 

2011-05-12 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.preamble:
	Bump version to 0.2.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Thread safety fixes.
	* Source/DKArgument.h
	* Source/DKArgument.m:
	Start implementing generation of XML introspection data.
	* Documentation/announce.0.2.texi: Stub release announcement
	for the next version.

	Thread safety fixes, started working on the generation of D-Bus
	XML introspection data.

2011-04-29 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Fix incorrect return statement.

2011-04-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Move handling errors on watch
	generation into the observable, make the worker thread perform
	adding the watch if possible. This improves reliability when we
	are operating without synchronization on +initialize.

2011-04-15 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKArgument.m: Fix word-size issues.
	* Documentation/install.texi: Bump required gnustep-base
	version to 1.22.0.
	* INSTALL: Regenerate.

2011-04-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Use pseudo interfaces instead of
	@class declarations for private classes that need to be
	initialized before starting the worker thread. This makes clang
	happy.
	* Source/DKArgument.m: Remove extraneous parantheses.
	* Source/DKInterface.m: Fix a bug that caused property
	getters/setters to be registered twice.

	Clang compatibility and bugfixes by Sebastian Reitenbach.

2011-03-13 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Remove redundant fixup for atomic
	operations linkage errors on 32bit intel platforms.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Import a lot of autoconf stuff to detect whether
	we need to link libgcc for atomic operations.
	* config.make.in: Add flags for atomic operations.
	* aclocal.m4
	* configure:
	Regenerate
	* m4/*
	* config.guess
	* config.sub
	* ltmain.sh
	* libtool
	* install-sh:
	Add libtool/autconf related file.

	Fixes to link libgcc for atomic operations when needed.

2011-02-28 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile: Attempt to fix linkage errors for 32bit
	intel platforms.

2011-02-27 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.gsdoc: Documentation improvement.
	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Document bus-state notifications. Turn strings for notification
	names into globals. 
	* Source/DKEndpointManager.m: Move thread starting code to the
	correct place.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/announce.0.1.texi: Add draft release
	announcement for 0.1.
	* Documentation/GNUmakefile: Add rules for ANNOUNCE
	* GNUmakefile.preamble
	* Source/GNUmakefile:
	Move version number to the top level.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fixed bug with method cache generation in
	the single-threaded case.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Add packaging metadata.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/UsingDBus.texi: Document failure recovery
	procedures.

2011-02-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fix over-release bug where we didn't take
	into account the fact that libdbus also takes ownership for the
	context objects.
	* Source/DKProxy.m: Let DKDBus objects trigger the state sync
	between DKNotificationCenter and the D-Bus connection.
	* Source/DKNotificationCenter.m: Correctly replace the endpoint
	after reconnect. Implement state sync with the new D-Bus
	connection.

	Finish implementing reconnection logic for bus objects and
	notification centers.

2011-02-21 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m: Fix the method that fills the ring
	buffer to actually do the expected thing in single-threaded mode.
	Previously, it would directly execute the request even if it was
	requested not to wait, causing unexpected reentrancy for some
	things. Also factor out the code that implements fallback to
	NSInvocation into a separate method.
	* Source/DKPort.m: Use libdbus macro for interface name.
	* Source/DKEndpoint.m: Actually remove DKWatchers from the
	runloop when thy are deallocated.
	* Source/DKProxy.m: Refactor -_disconnected: a bit. Override
	-methodSignatureForSelector: for DKDBus in order to play nice
	with notification center that does need to call private methods
	on DKDBus.
	* Source/DKNotificationCenter.m: Fix signal handling to take
	into account situations where no sender object is present.
	org.freedesktop.DBus.Local.Disconnected is an example.
	* Tests/TestDKProxy.m: Be more generous when waiting for threads
	to terminate.

	Bugfixes to get connection recovery to work. It will now work
	exactly once because the notification center does not yet update
	the new D-Bus connection to match its local state.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy+Private.h: Expose methods necessary for
	connection recovery to sibling classes.
	* Source/DKProxy.m: Make DKDBus reconstruct the port when
	recovery was successful.
	* Source/DKEndpointManager.h: Remove faulted connection table.
	* Source/DKEndpointManager.m: Implement endpoint recovery. Remove
	faulted connection table.

	Implement recovery of D-Bus connections for the bus objects.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where the field index for
	structure was not properly incremented in deserialization.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix a bug where deserializing an empty
	array would erroneously trigger an assertion failure.

2011-02-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be more verbose when failing assertions.

2011-02-18 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.h
	* Source/DKEndpointManager.m:
	Update prototype of method for scheduling endpoint recovery.
	Recovery will not yet be attempted, though.
	* Headers/DKProxy.h: Add ivar to flag disconnected bus objects.
	* Source/DKProxy.m: Start implementing disconnection handling
	for the bus objects. Also untangle DKDBus and
	DKNotificationCenter by overriding a few methods in DKDBus not
	to call into the notification center and by using a special
	DKPort subclass.
	* Source/DKProxy+Private.h: Expose a few more private methods to
	the sibling classes.
	* Source/DKPort.m: Invalidate ports on disconnection from the
	bus. Factor out notification registration into a separate
	method.
	* Source/DKInterface.h
	* Source/DKInterface.m:
	Support changes to allow postponing signal registration for bus
	objects.
	* Source/DKNonAutoInvalidatingPort.h
	* Source/DKNonAutoInvalidatingPort.m:
	Add subclass that does not rely on a working notification
	center. Only used by DKDBus instance.
	* Source/DKNotificationCenter.m: Untangle dependencies between
	DKDBus and DKNotificationCenter. DKDBus does no longer require
	the notification center, hence DKNotificationCenter is now
	responsible for registering signal definitions from the bus
	objects and making them watch for the disconnection signal.
	* Source/GNUmakefile: Add new module.

	Start working on recovery of the bus objects after disconnection
	from the bus. Also sanitize the dependencies of
	DKNotificationCenter and DKDBus.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpointManager.m
	* Source/DKPortNameServer.m:
	Add -dealloc methods to the singletons for completeness.
	* Source/DKPortNameServer.m: Actually initialize the (yet
	unused) tables.
	
2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix sel_getType_np check.
	* configure: Regenerate.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>
	
	* Source/DKPortNameServer.m
	* Headers/DKPortNameServer.h:
	Add stub implementation of a port name server.

2011-02-16 Niels Grewe <niels.grewe@halbordnung.de>

	Add missing files.

2011-02-15 Niels Grewe <niels.grewe@halbordnung.de>

	Merge DBusKit-ThreadRewrite branch. DBusKit now offloads all
	interactions with libdbus to a separate thread and uses
	DKEndpointManager as a gateway to do so. The new behaviour is
	disabled by default and can be enabled by calling [DKPort
	enableWorkerThread].
	This also contains various improvements and fixes bugs that
	were exposed by the new behaviour.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Be explicit about the buffer type for
	object path arguments when generating standins.

2011-01-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Add specialised deserialisation method for proxy-standins.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Add DKProxyStandin class to be used by the notification
	center while generating notifications.
	* Source/DKSignal.m: Deserialise DBUS_OBJECT_PATH as a standin,
	not as a proxy.
	* Source/DKEndpoint.m: Simplify -addTimeout: callback method.
	* Source/DKProxy.m: Generate method cache for the bus objects on
	init time. (The methods will be used internally anyways.)
	* Source/DKNotificationCenter.m: Avoid reentrancy when handling
	signals by a) making sure the bus objects are already available
	when initialising the notification center and b) using a
	DKProxyStandin when checking whether the signal should be
	handled and scheduling delivery of the notification on the run
	loop. Also fix a stupid va_arg bug.

	Attempt to fix reentrancy problems in DKNotificationCenter.
	Previously, handling a D-Bus signal could trigger the generation
	of DKProxies. Those would in turn would call back into libdbus
	code where things would get locked up. (Problem originally
	reported by Philippe Roussel.)

2011-01-03 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/DKIntrospectionParserDelegate.m:
	Tweak compatibility with different XML parser versions in
	gnustep-base.
	* Documentation/readme.texi: Fix typo.
	* README: Regenerate.

2010-12-10 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Fix crash in -isEqual: when the receiver is
	being compared with a NSPort subclass other than DKPort
	(reported by Philippe Roussel).

2010-10-26 Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethodCall.m
	* Tests/TestDKArgument.m:
	Fix memory leaks in the test suite.

2010-10-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Implement automatic invalidation of ports
	when the remote disappears from the bus. Applications should
	watch for NSPortDidBecomeInvalidNotification to catch this
	situation.

2010-09-22 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Add -isEqual: and -hash implementations
	to DKEndpoint. Improve thread-safety of DKRunLoopContext.
	* Source/DKPort.m: Add -isEqual: and -hash implementations.
	Remove -_proxyAtPath:, which is superfluous with recent
	changes to the DKProxy API.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add accessor method for the port and check proxy scopes by means
	of port equality.
	* Source/NSConnection+DBus.m: Remove use of -[DKPort
	_proxyAthPath:].
	* Tests/TestDKProxy.m: Improve logging for failure in threaded
	test.

	Follow-up changes for DKProxy API change, based on suggestions
	by Fred Kiefer.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangLog: Adjust formating.
	* Tools/dk_make_protocol.m: Point to the correct license file.

2010-09-19 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.h
	* Source/DKProxy.m:
	Adjust to use DKPort.
	* Source/DKArgument.m
	* Source/DKNotificationCenter.m
	* Source/DKObjectPathNode.m
	* Source/DKPort.m:
	Fixup for changes in DKProxy.

	Make DKProxy use a DKPort instead of a DKEndpoint/service name
	pair. This is the level of abstraction that will be used by
	DKPortNameServer to handle connection invalidation etc.
	Note: This breaks binary compatibility for DKPort subclasses
	with the fragile ABI.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Documentation fixes.
2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Include property methods in protocol
	declarations (no Objective-C 2 style "@property()"-stuff yet)
	* Documentation/UsingDBus.texi: Document property support.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix to respect the semantics of
	dbus_message_iter_init().

2010-09-12 Phillipe Rouselle

	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKPropertyMethod.m:
	Include string.h

	With the last modifications to base and libobjc2, each string
	function would generate a warning.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.h
	* Source/DKInterface.m:
	Add -installProperties method.
	* Source/DKIntrospectionParserDelegate.m: Enable parsing
	properties.
	* Source/DKProperty.h: Fix typo and rename method.
	* Source/DKProperty.m: Implement -copyWithZone:
	* Source/DKPropertyMethod.m: Fix selector string for setters.
	* Source/DKProxy.m: Trigger generation of property methods

	Enabled property support. Getters are already working, setters
	not so much.

2010-09-12 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m: Fix (benign) dead store.
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKProxy.m
	* Source/DKSignal:
	Fix memory leaks.

	Fix bugs found by the clang static analyzer.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>
	* GNUmakefile: Add DKProperty.m and DKPropertyMethod.m to the
	build.
	* Source/DKArgument.h: Tiny documentation clarification.
	* Source/DKMethod.h: Expose some methods needed by the
	subclasses.
	* Source/DKMethod.m: Introduce a slightly more flexible way of
	comparing D-Bus and Obj-C method signatures. 
	* Source/DKProperty.h: Remove redundant attribute field.
	* Source/DKProperty.m: Implement DKProperty to hold
	introspection data about properties.
	* Source/DKPropertyMethod.h: Complete header.
	* Source/DKPropertyMethod.m: Slight cleanup for the accessor,
	implement the mutator method.

	Even more work on properties.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix typo. Protect against potential
	memory leak when unmarshalling a variant type argument raises an
	exception.
	* Source/DKProperty.h: Changes to the class layout, added some
	method declarations.
	* Source/DKPropertyMethod.h
	* Source/DKPropertyMethod.m:
	Began stubbing out support for property accessor methods.

	Further work on properties. (Not yet connected to the build)

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/GNUmakefile: Fix copy-and-paste error.

2010-09-11 Niels Grewe <niels.grewe@halbordnung.de>

	* ChangeLog: Generate from `svn log'.
	* Source/DKSignal.h: Documentation fix.
	* Source/DKProperty.h: Add header.

	Begin conceptualizing property support. Add ChangeLog.

2010-09-10  Richard Frith-Macdonald <rfm@gnu.org>

	* GNUmakefile: warn if gnustep-make not found

2010-09-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Fix bug reported by Philippe Roussel. (Note to self:
	Unit tests are only useful if you actually run them…)

2010-09-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix compilation of testcases if DBusKit is not yet installed.

2010-08-23  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/GNUmakefile.postamble: Fix build by creating link to the header
	dir. (reported by Philippe Roussel).
	* Documentation/GNUmakefile.postamble: Fix removal of documentation on
	`make uninstall'.

2010-08-20  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: Only build documentation if makeinfo and texi2pdf are
	available.
	* Source/DKNotificationCenter.m: Fix bug that caused a sanity check to
	be skipped.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/install.texi: Mention the nonstrict flag.
	* INSTALL: Regenerate.

2010-08-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix cast

2010-08-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation for
	-[DKObservable matchesUserInfo:], simplified generation of observables
	by the notification center.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* COPYING: Add LGPL.
	* GNUmakefile: Add documentation to the build.
	* GNUmakefile.preamble: Add version variable.
	* Documentation/GNUmakefile
	* Documentation/GNUmakefile.postamble
	* Documentation/readme.texi
	* Documentation/install.texi
	* Documentation/DBusKit.gsdoc:
	Build README and INSTALL as well as reference documentation.
	* Headers/DKProxy.h
	* Headers/DKPort.h
	* Headers/DNotificationCenter.h:
	Mark ivars as private. Minor documentation improvements.
	* README
	* INSTALL:
	Regenerate.
	
	Improvements to the documentation.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumUtilityPanel.h,
	* Examples/Apertium/ApertiumUtilityPanel.m:
	Add files missing from last commit.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm:
	Make language selection panel an utility window.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h: Clarify removal semantics for
	observations.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: More consistent implementation of
	adding/removing observers.

2010-08-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Simplify removal of observations.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Orthographical corrections.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi: Reorder menu.

2010-08-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation/DBusKit.texi
	* Documentation/ExposingObjects.texi
	* Documentation/Introduction.texi
	* Documentation/UsingDBus.texi:
	Further work on the manual.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Documentation
	* Documentation/DBusKit.texi,
	* Documentation/GNUmakefile
	* Documentation/Introduction.texi
	* Documentation/fdl-1.3.texi:
	Begun writing a guide on how to use D-Bus with GNUstep:

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Tools/COPYING
	* Tools/dk_make_protocol.m:
	Add license.

2010-08-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUMakefile
	* Tools/GNUmakefile
	* Tools/dk_make_protocol.m:
	Add primitive tool to generate protocol declarations from .interface
	files.
	* Source/DKInterface.m: Small tweak to the generation of protocol
	declarations.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKPort.m
	* Source/DKProxy.m:
	A few more documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m
	* Source/DKInterface.h
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionParserDelegate.h
	* Source/DKMessage.h
	* Source/DKMethod.h
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m
	* Source/DKSignal.h:
	Documentation improvements.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DBusKit.h: Add DKNotificationCenter.h
	* Source/DKProxy.m: Use correct path to the bus object.
	* Source/DKNotificationCenter.m: Observe name changes so that sender
	rules for observables stay up to date.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Improve documentation. Fix removal
	of signal-match from D-Bus.

2010-08-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Small documentation improvement.
	* Headers/DKNotificationCenter.h: Documented DKNotificationCenter. Added
	ivar.
	* Source/DKProxy.m: Override -respondsToSelector:. Protect generation of
	the method cache so that a remote error doesn't leave the object in an
	unusable state.
	* Source/DKEndpoint.m: Fix DKWakeUp(). (Previously, it would create
	unwanted reentrancy.)
	* Source/DKNotificationCenter.m: Primitive support for observing D-Bus
	signals.
	
	Preliminary support for D-Bus signals. Documentation
	improvements.

2010-08-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* Source/DKInterface.[hm]:
	Remove dispatch table from DKProxy and let DKInterface generate it
	instead.
	* Source/DKInterface.[hm]: Fix memory leak. Rename -methodForSelector:
	to -DBusMethodForSelector:. Also move registration of signals here.
	* Source/DKMethod.m: Generate smarter method declarations.
	* Source/DKIntrospectionParserDelegate.m: Return nil from -leaf instead
	of NSNull. Improve handling signals.
	* Source/DKSignal.[hm]: Implement generation of userInfo dictionaries
	for notifications from received signals.
	* Source/DKMethodCall.m: Small indentation fix.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Bugfixes. Continue implementing generation of notifications from
	signals.
	* Tests/TestDKMethodCall.m
	* Tests/TestDkMethod.m:
	Use new method name.
	
	A few bugfixes and improvements suggested by Fred Kiefer.
	Continued work on D-Bus signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Implement method to add match rules for signals.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Remove workaround for some libdbus oddity I was
	experiencing earlier.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	API refinements for DKDBus.
	* Headers/DKPort.h
	* Source/DKPort.m
	* Tests/TestDKProxy.m:
	Finish replacing subclasses with equivalent initializers. Adopt
	test case.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Mark some functions as inlineable.
	* Source/DKEndpoint.[hm]: Carry over information about the new
	endpoint when an old one is being reused. Fix bug in
	-initWithConnectionTo: where the new connection never got assigned.
	Rearrange method order. Improve documentation a bit.

2010-08-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Move rule generation into DKObservable helper-class.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m:
	Remove struct nonsense in favour of real objects.

2010-08-08  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKSignal.[hm]: Make DKSignal useful.
	* Header/DKNotificationCenter.h: Add notificationNames ivar.
	* Source/DKNotificationCenter.m: Implement registration of signals and
	notification names.
	* DKIntrospectionParserDelegate.m: Parse signals and trigger their
	registration with the appropriate notification center.
	* Tests/TestDKProxy.m: Fix test for errors returned by remote objects.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Clarify exception name.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKNotificationCenter.m: Add methods to generate rules for
	matching D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add DKDBus subclass for getting shared proxies to the
	org.freedesktop.DBus services on their respective busses.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement -_uniqueName to get the unique name of a service from the bus.
	* Headers/DKPort.h: Add "don't know" member value to the bus type
	enumeration.
	* Source/DKPort.m: Use DKDBus instead of -getBusObject magic.
	* Source/DKEndpoint.[hm]: Implement -DBusBusType to get the type of bus
	an endpoint is connected to.
	* Source/DKInterface.[hm]: Add some more methods for signals/properties.
	* Headers/DKNotificationCenter.h
	* Source/DKNotificationCenter.m
	* Source/GNUmakefile:
	Add very much work-in-progress notification center class for managing
	D-Bus signals.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKSignal.m
	* Source/DKObjectPathNode.m:
	Fix various issues in -copyWithZone:.
	* Source/DKInterface.[hm]: Begin adding plumbing for signals/properties.
	* Source/DKIntrospectionNode.[hm]: Add -annotations method to get the
	annotation dictionary for a node.
	* Tests/TestDKMethod.m: Fix the copy test to use the correct selector.
	
	Fix NSCopying for DKIntrospectionNode and subclasses.

2010-08-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKMethod.m: Add test for copying parts of the introspection
	graph (fails at the moment).

2010-08-05  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKPort.h
	* Source/DKPort.m:
	Add DKDBusBusType enumeration and related initializer.
	* Source/DKArgument.m
	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m
	* Source/DKObjectPathNode.m
	* Source/DKSignal.m:
	Adopt NSCopying for DKIntrospectionNode and subclasses.
	* Source/NSConnection+DBus.m: Add further integration methods (commented
	out until DKPortNameServer can be committed).

2010-07-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m:
	Add an explicit NSCondition and a state variable to make synchronisation
	more robust (and readable).
	* Tests/TestDKProxy.m: Adopt to changed code and add test for calling
	methods from multiple threads.
	
	Thread safety improvements.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h
	* Source/DKProxy.m:
	Disable asnychronous generation of the method cache again (it doesn't
	seem to be working reliably).

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Bugfix.
	* Source/DKEndpoint.[hm]: Support watchers and timers on multiple
	run-loops.
	* Source/DKProxy.m: Allow D-Bus methods to be called from multiple
	threads. Also enable asynchronous generation of the method cache.

2010-07-30  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Attempt to clarify the code path for method lookup.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Rename -_methodForSelector:block: to
	-_methodForSelector:waitForCache:.
	* Source/DKArgument.m: Add cast that might be needed.

2010-07-29  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Really fix the initializer this time.
	* Source/DKIntrospectionParserDelegate.m: Smarter handling of the root
	node.
	* Source/DKArgument.m
	* Source/DKMethodCall.m
	* Source/DKProxy.m
	* Source/DKProxy+Private.m:
	Move some more methods that are often used by the internal classes into
	DKProxy+Private.h.
	* Source/DKObjectPathNode.h
	* Source/DKObjectPathNode.m:
	Implement retrieval of a proxy for a DKObjectPathNode.
	
	More cleanup and minor improvements.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionParserDelegate.m
	* Source/DKMethod.[hm]
	* Source/DKSignal.[hm]:
	Simplify (or remove) method and signal initalizer to not require
	the interface name. Remove _DKMethodIntrospect.
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Implement _DKInterfaceIntrospectable to replace _DKMethodIntrospect.
	* Source/DKInterface.m: Normalize selectors before table
	lookups/updates.
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m:
	Adapt test cases to use _DKInterfaceIntrospectable.
	
	Refactor the global introspection method into a global introspection
	interface to allow simpler initializers for DKMethod and DKSignal.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/GNUmakefile
	* Source/DKObjectPathNode.[hm]
	* Source/DKProxy.m
	* Source/DKProxy+Private.h:
	Add DKObjectPathNode class and protocol (handles object trees and
	interfaces). Implement DKObjectPathNode protocol in DKProxy and expose
	it via DKProxy+Private.h.
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m
	* Source/DKOutgoingProxy.h
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/NSConnection+DBus.m:
	Include new DKProxy+Private.h instead of the public header.
	* Source/DKMethod.[hm]
	* Source/DKInterface.[hm]
	* Source/DKIntrospectionParserDelegate.m
	* Tests/TestDKMethod.m:
	Rename initializers of DKMethod and DKInterface to follow the naming
	scheme of the superclass more closely.
	* Source/DKIntrospectionParserDelegate.[hm]: Use the parent to store the
	introspection tree and not the parser delegate.
	
	Clean up the generation of the introspection data so that the parser
	delegate doesn't need to keep the generated tree around. Also be more
	consistent about naming initializers in subclasses of
	DKIntrospectionNode.

2010-07-28  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Prevent libdbus from calling _exit() when
	the bus goes away.

2010-07-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m
	* Source/DKIntrospectionNode.[hm]
	* Source/DKMethod.m:
	Remove parser delegate methods and ivars.
	* Source/DKSignal.[hm]
	* Source/GNUmakefile:
	Add stub for handling signals.
	* Source/DKIntrospectionParserDelegate.[hm]: Consolidate XML parsing and
	keep a stack for the XML tree.
	
	Refactor introspection handling so that the generation of the
	introspection graph happens entirely from within
	DKIntrospectionParserDelegate.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Only refer to D-Bus methods by their untyped
	selector IDs.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumTranslator.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Fix memory leaks generated by the fact that I copy and paste too much
	without thinking.

2010-07-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/NSConnection+DBus.h
	* Source/NSConnection+DBus.m:
	Add -proxyAtPath: method to obtain proxies for non-root objects of a
	D-Bus service.
	* Source/GNUmakefile: Add NSConnection+DBus.[hm] to build.
	* Source/DKPort.m: Rearrange so that proxy generation is separated from
	encoding the proxy for use in NSConnection.
	* Headers/DBusKit.h: Add DKProxy.h and NSConnection+DBus.h.
	* Tests/TestDKProxy.m: Test for fetching proxies to non-root objects.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Improve error reporting.

2010-07-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Make DKPort check whether the requested remote
	is available on the bus.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Use sel_get_type() instead of accessing a
	selector's type field directly.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Move from NSLog() to NSDebugMLog()
	* Source/DKProxy.[mh]: Move from NSLog() to NSDebugMLog(). Implement
	-setPrimaryDBusInterface:.

2010-07-19  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Check whether making calls to
	the org.apertium.info object on D-Bus raises an exception. Also more
	checking when generating the localized language string for the UI.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples/Apertium/ApertiumInfo.m: Strip whitespace from mode strings.
	* Examples/Apertium/ApertiumServer.m: Properly handle exceptions from
	the D-Bus side.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Examples, Examples/Apertium
	* Examples/Apertium/ApertiumController.h
	* Examples/Apertium/ApertiumController.m
	* Examples/Apertium/ApertiumInfo.h
	* Examples/Apertium/ApertiumInfo.m
	* Examples/Apertium/ApertiumInfo.plist
	* Examples/Apertium/ApertiumServer.h
	* Examples/Apertium/ApertiumServer.m
	* Examples/Apertium/ApertiumTranslator.h
	* Examples/Apertium/ApertiumTranslator.m
	* Examples/Apertium/COPYING
	* Examples/Apertium/GNUmakefile
	* Examples/Apertium/LanguagePanel.gorm
	* Examples/Apertium/LanguagePanel.gorm/data.classes
	* Examples/Apertium/LanguagePanel.gorm/data.info
	* Examples/Apertium/LanguagePanel.gorm/objects.gorm
	* Examples/Apertium/SourceLanguagePopup.h
	* Examples/Apertium/SourceLanguagePopup.m
	* Examples/Apertium/main.m:
	Commit a little example demonstrating what is possible with DBusKit. The
	Apertium.service hooks into the Apertium machine translation system via
	D-Bus and exposes it as a service. You can thus use the translator from
	within any GNUstep application. The DBusKit-specific portions are
	contained in ApertiumTranslator.m and ApertiumInfo.m.

2010-07-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Turn NSLog() calls into NSDebugMLog().
	Fix a bug where timers were not tracked, causing them to not be
	invalidated properly (they would sometimes fire after the target object
	disappeared).

2010-07-17  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Guard against nil values as arguments. Fix bug in
	* marshalling variant type arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix bug where strings would be messed up
	because of an improper cast.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/GNUmakefile: Keep gnustep-make from installing the
	testsuite.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Tests/TestDKProxy.m: Add test case for methods that contain boxed
	and non-boxed arguments.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.[hm]: Be more flexible about boxing. Decide
	whether argument should or shouldn't be boxed based on the
	related invocation.
	* Source/DKMethodCall.[hm]
	* Source/DKProxy.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKProxy.m:
	Remove references to the old argument types which did statically
	decide on a boxing scheme.
	* Headers/DKProxy.h: Remove unused ivar.
	
	Make better use of D-Bus and Objective-C introspection data to
	decide on the fly whether an argument to a D-Bus method should
	be boxed in an Objective-C object or not.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.[hm]:
	Add -methods to return the array of all methods in the interface.
	* Source/DKIntrospectionNode.[hm]: Add -setParent: method that is
	needed to reparent nodes from the parser delegate to the proxy
	that is using them.
	* Source/DKIntrospectionParserDelegate.[hm]: Add class to hold
	the constructed introspection graph.
	* Source/DKMethod.m: Remove call to DKProxy's _installMethod:...
	method.
	* Source/DKProxy.m: Remove parser delegate methods and reorganise
	the code so that DKProxy itself is responsible for installing
	the methods found by introspection.
	* Source/GNUmakefile: Add DKIntrospectionParserDelegate.m to the
	build.
	
	Separate parsing of introspection data from DKProxy, which is now
	also responsible for installing methods.

2010-07-16  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKIntrospectionNode.m
	* Source/DKProxy.m:
	Simplify -proxyParent method.

2010-07-14  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* GNUmakefile.postamble
	* Source/GNUmakefile
	* Source/GNUmakefile.postamble
	* Source/Tests
	* Tests
	* Tests/GNUmakefile
	* Tests/GNUmakefile.postamble
	* Tests/TestDKArgument.m
	* Tests/TestDKMethod.m
	* Tests/TestDKMethodCall.m
	* Tests/TestDKPort.m
	* Tests/TestDKProxy.m:
	Reorganise the project so that the tests are built as a separate
	subproject and linked against the framework.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKInterface.m: Remove erratic parentheses around protocol
	names.

2010-07-13  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKMethod.m
	* Source/DKMethodCall.m:
	Replace side-effect ridden NSAsserts.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Make proper use of selector types to
	generate the method signature so that methods can be called
	unmangled without boxing the arguments.
	* Source/Tests/TestDKProxy.m: Implement test for unboxed method
	calls.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Some bugfixes. Implement handling mangled
	selectors.
	* Source/Tests/TestDKProxy.m: Test sending unboxed method calls
	with mangled selectors.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethodCall.m: Fix statement order and typo.
	* Source/Tests/TestDKProxy.m: Test for returning errors from
	D-Bus.

2010-07-12  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h: Add needed ivars.
	* Source/AsyncBehavior.h: Minor addition.
	* Source/DKArgument.[mh]: Remove -proxyParent method (now in
	superclass)
	* Source/DKInterface.h: Declare -mangledName.
	* Source/DKInterface.m: Implement selector/method-map and XML
	parser delegate methods.
	* Source/DKIntrospectionNode.[mh]: Move -proxyParent method here.
	Handle annotations.
	* Source/DKMethod.[hm]: Implement -selectorString method to
	generate selector names. Also add XML parser delegate methods.
	* Source/DKMethodCall.m: Fix bug where an D-Bus error was used
	unitialized.
	* Source/DKProxy.m: Remove async stuff (pretty superfluous right
	now). Fix various bugs in selector resolution and implement
	building the method cache.
	* Source/Tests/TestDKProxy.m: Add tests for new functionality.
	
	Implement the remaining bits of basic proxy functionality.
	Arbitrary D-Bus methods can now be called when their arguments
	are boxed as Objective-C types. Calling methods without boxing
	to come.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix -isDictionary method for array
	arguments.

2010-07-04  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove isa-swizzling in favour of creating
	the correct objects in the initalizers.

2010-07-03  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Remove
	incorrect -release (spotted by Fred Kiefer).
	* Source/Tests/TestDKMethodCall.m
	* Source/Tests/TestDKArgument.m:
	Small test improvements.

2010-07-02  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/AsyncBehavior.h: Add macros to do stuff asynchronously
	if possible.
	* Source/DKInterface.[hm]: Remove superfluous -parent method.
	* Source/DKMethod.m: Some more modularisation. Add comparison
	method. Calculate offsets and sizes for signatures correctly.
	* Headers/DKProxy.h: Add instance variables.
	* Source/DKProxy.[hm]: Implement -forwardInvocation: and triggers
	to generate the method cache (actual generation of the cache
	still missing).
	* Source/Tests/TestDKProxy.m: Add test for calling Introspect()
	via the built-in _DKMethodIntrospect.
	* Source/Tests/TestDKArgument.m: Minor rearrangement.
	
	Made dispatching D-Bus method calls work via -forwardInvocation:.
	As of yet, you can only call -Introspect (this is needed to obtain the
	introspection data used to build the actual method cache).

2010-06-28  Niels Grewe <niels.grewe@halbordnung.de>

	* configure.ac: Fix autoconf test for location of runtime.h
	* configure: Regenerate

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[hm]: Turn DKRunLoopContext into an instance
	variable. Some features need access to the run loop and run loop
	mode information.
	* Source/DKMethodCall.[hm]: Add implementation of synchronous
	method calls and stubbed out support for asynchronous calls.
	* Source/GNUmakefile: Add new modules.
	* Source/Tests/TestDKMethodCall.m: Add test for introspection
	method call.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Fixed missing include.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h: Add (un-)marshalling methods to the header.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.[mh]:
	Add accessor method for the DBusConnection on libdbus-level.
	* Source/GNUmakefile
	* Source/DKMessage.[mh]:
	Add primitive class for sending message to D-Bus.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKArgument.m: Add test for fallback-to-struct
	feature when encoding dictionaries to variant types.

2010-06-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m, Source/Tests/TestDKArgument.m: Fix
	generation of signatures for objects that are passed as variant
	type arguments. Some test-cases for this.

2010-06-24  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.[mh]: Implement marshalling of variant
	types. Also add the ability to customize the unboxing of
	objects.
	* Source/DKEndpoint.m
	* Source/DKMethod.m
	* Source/DKPort.m:
	Compile fixes for clang.
	* Source/DKOutgoingProxy.[mh]
	* Source/GNUmakefile:
	Add stub implementation for outgoing proxies.
	* Source/DKProxy.m: Add method to distinguish outgoing and
	incoming proxies.
	* Source/Tests/TestDKProxy.m: Fix runtime.h include.
	* Source/Tests/TestDKArgument.m: Add test for custom unboxing
	methods.
	* Source/config.h.in
	* config.make.in
	* configure.ac
	* GNUmakefile.postamble:
	Update configure script and paraphernalia to check for advanced
	runtime features.
	* configure: Regenerate
	
	Finish implementation of (un-)marshalling values between
	NSInvocation and D-Bus messages. More flexible scheme for
	unboxing values. Various smaller fixes.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling D-Bus variant types.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: (Un-)marshalling of D-Bus structs.

2010-06-21  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Finish (un-)marshalling of dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Implement unmarshalling of D-Bus
	dictionaries.

2010-06-20  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: WIP (un-)marshalling of complex types.

2010-06-18  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	Source/DKInterface.[hm]:
	Add WIP representation of D-Bus interfaces.
	* Source/DKIntrospectionNode.[mh]: Basic XML parser delegate
	methods.
	* Source/DKMethod.m: Remove superflous method signature code.
	* Source/DKMethod.m
	* Source/DKArgument.m
	* Source/DKArgument.h:
	Work on marshalling/unmarshalling between NSInvocation and D-Bus
	messages.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Remove leftover duplicate
	code.

2010-06-15  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKIntrospectionNode.h
	* Source/DKIntrospectionNode.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile,
	* Source/Tests/TestDKMethod.m:
	Factor common code out into DKIntrospectionNode and make
	DKArgument and DKMethod use it.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h, Source/DKMethod.m: Also use
	org.freedesktop.DBus.Method.NoReply annotation to mark the
	method as oneway.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKMethod.h
	* Source/DKMethod.m,
	Source/Tests/TestDKMethod.m:
	Make DKMethod generate method declarations.

2010-06-14  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m
	* Source/GNUmakefile
	* Source/Tests/TestDKProxy.m:
	Work on method name unmangling. Now partially working, still ugly
	as hell.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/Tests/TestDKMethod.m
	* Source/Tests/TestDKArgument.m:
	Tests for assignments in the initializers.
	* Source/DKProxy.m
	* Headers/DKProxy.h:
	-hasSameScopeAs: method to test whether two proxies fall into
	the scope of one and the same D-Bus service.
	* Source/DKArgument.h: Expose a few accessors.
	* Source/DKArgument.m: Fix bug in the name assignment. Implement
	-name method.
	Let the proxy do the scope checking.
	* Source/DKMethod.m: Shuffle a few statements around for more
	natural ordering.
	* configure.ac: Leave a TODO about needing to fix the configure
	script ugliness.
	* config.make.in: Another attempt to get linking done properly.
	
	Many improvement suggested by Fred Kiefer.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Headers/DKProxy.h
	* Source/DKProxy.m
	* config.make.in:
	Fix failure to link against libdbus (reported by Fred Kiefer).
	Initial work on method-name mangling.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: short is apparently always 16bit.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Fix unboxing of doubles.
	* Source/Tests/TestDKArgument.m: Add test cases for unboxing.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m:
	Implement unboxing of simple types. Fix boxing of 64bit values.

2010-06-11  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m
	* Source/DKProxy.m
	* Source/GNUmakefile,
	* Source/GNUmakefile.postamble
	* Source/Tests/TestDKArgument.m,
	* Source/Tests/TestDKPort.m:
	Add a few more tests and some dummy methods.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKProxy.m,
	* Source/Tests/TestDKArgument.m:
	Boxing of simple types with associated test-coverage.

2010-06-10  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKMethod.h
	* Source/DKMethod.m
	* Source/GNUmakefile
	* Source/Tests/TestDKMethod.m:
	Add initial implementation of DKMethod to encapsulate D-Bus
	method information.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/GNUmakefile
	* Source/GNUmakefile.postamble:
	Provide link to	public headers when compiling the tests.

2010-06-09  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile: autorun ukrun for tests.
	* configure.ac
	* config.make.in
	* Source/GNUmakefile:
	Check for and use -Wdeclaration-after-statement
	* Source/DKArgument.m
	* Source/DKPort.m:
	Fix C99isms.
	* Source/Tests/TestDKArgument.m: Separate unit tests from source.
	Properly include local headers.

2010-06-08  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/GNUmakefile
	* Source/TestDKArgument.m:
	Fix DKArgument problems. Add test cases for DKArgument (requires
	UnitKit).

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Support generating D-Bus type signatures from DKArgument trees.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m:
	Made DKArgument collect all subtypes of an argument from a D-Bus
	message. Totally untested, though.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.m: Place -release call properly. Thanks to Fred
	Kiefer for pointing that out.

2010-06-07  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKArgument.h
	* Source/DKArgument.m
	* Source/DKEndpoint.m,
	* Source/GNUmakefile:
	WIP representation of D-Bus argument information.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Simpify DKPort a bit.

2010-05-31  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKProxy.m: Actually, -[NSProxy dealloc] can be called.
	Pointed out by Fred Kiefer; no idea why I thought that wasn't
	possible…

2010-05-30  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile
	* Headers/DKProxy.h
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/DKProxy.m
	* Source/GNUmakefile:
	Add a dummy proxy class. Finish implementation of the
	NSConnection integration for ROOTPROXY_REQUEST messages:
	Connections to D-Bus can now return their own proxies.

2010-05-27  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKPort.m: Call self instead of super for DKPort subclass
	initializers.

2010-05-26  Niels Grewe <niels.grewe@halbordnung.de>

	* Source/DKEndpoint.m: Fixes a bug where returning an pre-existing
	DKEndpoint would result in a teardown of the D-Bus connection.
	Also work around some libdbus strangeness that needs further
	investigation.
	* Source/DKPort.m: Slightly more expressive designated
	initializer. Begin stubbing out integration into NSConnection.
	* Headers/DKPort.h: Add initializer.

2010-05-10  Niels Grewe <niels.grewe@halbordnung.de>

	* GNUmakefile.postamble
	* Headers/config.h.in
	* aclocal.m4
	* configure
	* configure.ac:
	Add configure script and paraphernalia (but make still
	regenerates config.make on distclean).
	* Source/DKPort: Simple initializers for DKPort.

2010-05-09  Niels Grewe <niels.grewe@halbordnung.de>

	* .
	* GNUmakefile
	* GNUmakefile.postamble
	* Headers
	* Headers/DBusKit.h
	* Headers/DKPort.h
	* Headers/config.h.in
	* Source
	* Source/DKEndpoint.h
	* Source/DKEndpoint.m
	* Source/DKPort.m
	* Source/GNUmakefile
	* config.make.in
	* configure.ac:
	Import code in preparation for GSoC.
