puppetlabs/puppet — pull request #622 by glarizza (2012-04-05 00:20:20+00:00)
Title: Replace facter/util/plist with puppet/util/cfpropertylist

Previously, the facter/util/plist library was used for plist
manipulation in OS X. This library could only handle XML plists, and
thus we needed to convert every possible plist that Puppet could read to
XML before reading it. This incurred a great speed hit for anyone using
Puppet with OS X.

The CFPropertyList project (https://github.com/ckruse/cfpropertylist),
maintained by Christian Kruse, is a library that can not only read XML
and Binary plist files, but also can use either the libxml, nokogiri, or
built-in REXML library to do so. This is ideal as the libxml library can
utilize c extensions to do the reading/converty and thus is quite fast.

This commit introduces the CFPropertyList project into the puppet/util
namespace, and refactors all code (except the pkgdmg and appdmg
providers - explanation later) that previously utilized the
facter/util/plist library. This also includes spec tests. The providers
in question are:

- macauthorization provider
- launchd service provider
- directoryservice provider