This folder contains implementations of the connector framework. 

The goal here is to provide a number of permissively licensed Wookie connectors that will allow
plugin developers to get moving quickly.

For more information see: http://incubator.apache.org/wookie/embedding-wookie-widgets-in-other-applications.html
