David Winterbottom
ed28ecad71
Adjust how shipping methods are handled in the repository class
The old Repository class wasn't thread safe as the method instances were
created at compile time. Since the instance is configured by setting
the basket for each request, this poses thread safety issues as two
requests could share the same method instance (one of which would have
the wrong basket assigned).
This change fiddles with how the methods are handled, ensuring that they
are instanciated within the instance methods so that thread-safety
issues go away.
Shipping methods need a gentle rewrite for v0.7 to ensure they aren't
vulnerable to such issues.