Skip to content

Commit

Permalink
NIFI-13773 Support different versions of nifi-api and nifi-framework-…
Browse files Browse the repository at this point in the history
…api (apache#39)

- Added nifi-framework-api to the classpath only if it is a dependency of the extension and with the provided version

Signed-off-by: David Handermann <exceptionfactory@apache.org>
  • Loading branch information
turcsanyip authored Sep 23, 2024
1 parent 2da7df5 commit 007fc24
Showing 1 changed file with 10 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -239,23 +239,25 @@ private Artifact getProvidedArtifact(final String groupId, final String artifact
private ExtensionClassLoader createProvidedEntitiesClassLoader(final ArtifactsHolder artifactsHolder)
throws MojoExecutionException, ProjectBuildingException {

final Set<Artifact> providedArtifacts = new HashSet<>();

final String nifiApiVersion = determineProvidedEntityVersion(artifactsHolder.getAllArtifacts(), "org.apache.nifi", "nifi-api");
if (nifiApiVersion == null) {
throw new MojoExecutionException("Could not find any dependency, provided or otherwise, on [org.apache.nifi:nifi-api]");
} else {
getLog().info("Found a dependency on version " + nifiApiVersion + " of NiFi API");
}

final String slf4jApiVersion = determineProvidedEntityVersion(artifactsHolder.getAllArtifacts(),"org.slf4j", "slf4j-api");

final Artifact nifiApiArtifact = getProvidedArtifact("org.apache.nifi", "nifi-api", nifiApiVersion);
final Artifact nifiFrameworkApiArtifact = getProvidedArtifact("org.apache.nifi", "nifi-framework-api", nifiApiArtifact.getVersion());
providedArtifacts.add(nifiApiArtifact);

final Artifact slf4jArtifact = getProvidedArtifact("org.slf4j", "slf4j-api", slf4jApiVersion);
final String nifiFrameworkApiVersion = determineProvidedEntityVersion(artifactsHolder.getAllArtifacts(),"org.apache.nifi", "nifi-framework-api");
if (nifiFrameworkApiVersion != null) {
final Artifact nifiFrameworkApiArtifact = getProvidedArtifact("org.apache.nifi", "nifi-framework-api", nifiFrameworkApiVersion);
providedArtifacts.add(nifiFrameworkApiArtifact);
}

final Set<Artifact> providedArtifacts = new HashSet<>();
providedArtifacts.add(nifiApiArtifact);
providedArtifacts.add(nifiFrameworkApiArtifact);
final String slf4jApiVersion = determineProvidedEntityVersion(artifactsHolder.getAllArtifacts(),"org.slf4j", "slf4j-api");
final Artifact slf4jArtifact = getProvidedArtifact("org.slf4j", "slf4j-api", slf4jApiVersion);
providedArtifacts.add(slf4jArtifact);

getLog().debug("Creating Provided Entities Class Loader with artifacts: " + providedArtifacts);
Expand Down

0 comments on commit 007fc24

Please sign in to comment.