Unlike last attempt this replaces Fog::Connection with
Fog::XML::Connection which should be directly compatible.
Fog::Connection is there for old PRs but should be removed real soon.
Providers using JSON should be able to replace "XML" with "Core" within
their code to cut down on the dependency.
If I get the time I may attempt to clean up some but testing with Mock
will mean that is mostly educated guesswork.
Fog::Connection mixed in XML parsing via the `parser` argument which
wasn't much use for the majority of APIs using JSON.
This adds the deprecation warning and attempts to update providers to
the correct version of Connection that they need.
Either the cleaner `Fog::Core::Connection` or if reliant on the XML
parsing still `Fog::XML::SAXParserConnection`
The SAX parser will be moving to `fog/xml` fairly soon.
Since `fog-json` was extracted from `fog` it means if you rely on:
require "fog/provider/compute"
`Fog::JSON` was not defined although it was supposed to be a supported
use case.
This adds the requires for JSON or XML based APIs based on a quick scan
of each provider to declare the required part.
AWS seems to be relying on both. Which is nice.
Providers relying on native code dependencies
In many places we were checking for identity which was the shorthand for
checking if the resource had been saved by the service.
The #persisted? method was added to show a clearer intent and also offer
minimal ActiveModel interface