better impl of listener
Merge branch 'master' into develop
docs up
Changed Project to 3.5 so that it could be used in older projects
Merge pull request #1 from mondok/develop

Changed Project to 3.5 so that it could be used in older projects
Upgraded References

Upgraded RabbitMQ.Client to 3.2.1
Upgraded log4net to 2.0.2
Upgraded SharpTestsEx to 1.1.1
Upgraded NUnit to 2.6.3
All unit tests pass
Merge pull request #2 from stemarie/develop

Upgraded References

@stemarie thx!
Removed references that are not required.
Added missing log4net, nunit and rabbitMQ dll files.
Fixed a deadlock condition.

Fixed a deadlock condition that can occur under some conditions in the
ShutdownAmqp() method.

If ShutdownAmqp() is called as a result of the
Connection.ConnectionShutdown() event, calling the Model.Close() method
can deadlock.  When this happens the connection and model are not
cleaned up completely and the appender will not reconnect to RabbitMQ.
This condition can be simulated by starting your app, letting it connect
to RabbitMQ, and then using the RabbitMQ Admin UI to manually close you
connection.

In addition, the deadlocked thread, prevents the application from
shutting down cleanly.

The fix is to shutdown the old connection and model asynchronously.

Also added some debug messages that get enabled when log4net internal
debugging is turned on.
Detect ModelShutdown events.

Hook into the Model.ModelShutdown event and reset the RabbitMQ
connection if the model is shutdown.

This can be simulated by using the RabbitMQ Admin UI and deleting the
RabbitMQ exchange the app is connected to.

In this case, the connection is not lost so you don't get a
Connection.ConnectionShutdown event.

Based on my testing you won't get the ModelShutdown event until you try
to publish a method.  In addition, checking the Model.IsOpen property
after calling BasicPublish() is not reliable as it may be true initially
after BasicPublish() is called, and then get set to false, sometime
later.   Hooking into ModelShutdown seems to be the fastest, most
reliable way to detect this condition.
Added additional support for configuring the  exchange and message properties.

Added ExchangeProperties which adds support for configuring the exchange
type and durability and to allow support for adding exchange bindings.

Added MessageProperties which allows the Topic to be customized with a
LayoutPattern and allows the ContentType, persistence and priority of
messages to be adjusted.
Merge pull request #3 from jeffbader/develop

Add missing dependency dll's.
Map the Appender.ExtendedData to MessageProperties.ExtendedData.
Normalized whitespace.
Merge pull request #4 from jeffbader/develop

Added additional config options.
Upgrade RabbitMQ.Client to 3.3.2 for better SSL support
Add SSL option to the appender
Merge pull request #6 from SpotlightUK/ssl

Add SSL option
Only write exceptions to logger if IgnoresException is set (as per log4net upstream)