We've moved away from calling location constructors directly (because if you do then the ManagementContext won't know about it).
Instead, we use things like:
    `managementContext.getLocationManager().createLocation(LocationSpec.spec(SingleMachineProvisioningLocation.class).configure("target", target))`

And then just have the no-arg constructor for `SingleMachineProvisioningLocation`.