The resolver to use — a consumer's registered subclass if there is one, otherwise MJ's own.
Resolved per call rather than cached at module load, because a registration made during
application startup would otherwise be missed depending on import order — a failure mode that
shows up as "my resolver works in tests and not in the server", which is expensive to chase.
The class is stateless and construction is trivial, so there is nothing to gain by caching.
Falls back to the stock instance when nothing is registered.
The resolver to use — a consumer's registered subclass if there is one, otherwise MJ's own.
Resolved per call rather than cached at module load, because a registration made during application startup would otherwise be missed depending on import order — a failure mode that shows up as "my resolver works in tests and not in the server", which is expensive to chase. The class is stateless and construction is trivial, so there is nothing to gain by caching.
Falls back to the stock instance when nothing is registered.