in src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java [323:356]
private Set<URL> toURLs(final Artifact artifact) throws MojoExecutionException {
final Set<URL> urls = new HashSet<>();
final File artifactFile = artifact.getFile();
if (artifactFile == null) {
getLog().debug("Attempting to resolve Artifact " + artifact + " because it has no File associated with it");
final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
request.setLocalRepository(localRepo);
request.setRemoteRepositories(remoteRepos);
request.setArtifact(artifact);
final ArtifactResolutionResult result = artifactResolver.resolve(request);
if (!result.isSuccess()) {
throw new MojoExecutionException("Could not resolve local dependency " + artifact);
}
getLog().debug("Resolved Artifact " + artifact + " to " + result.getArtifacts());
for (final Artifact resolved : result.getArtifacts()) {
urls.addAll(toURLs(resolved));
}
} else {
try {
final URL url = artifact.getFile().toURI().toURL();
getLog().debug("Adding URL " + url + " to ClassLoader");
urls.add(url);
} catch (final MalformedURLException mue) {
throw new MojoExecutionException("Failed to convert File " + artifact.getFile() + " into URL", mue);
}
}
return urls;
}