@Override
public String resolve(final String rawLocation) throws Exception {
if (rawLocation.startsWith(ProvisioningUtil.MVN_PREFIX) && rawLocation.length() > ProvisioningUtil.MVN_PREFIX.length()) {
final String info = rawLocation.substring(ProvisioningUtil.MVN_PREFIX.length());
final Parser parser = new Parser(info);
final File file = cacheFile(parser.getArtifactPath());
if (!file.exists() || !file.canRead()) {
try {
final URL url = new URL(ProvisioningUtil.MVN_PREFIX.substring(ProvisioningUtil.MVN_PREFIX.length() - 1), "localhost", -1, info, new Handler());
final File parentFile = file.getParentFile();
if (!parentFile.exists()) {