quarkusio/quarkus · error · IllegalStateException
This feature is not yet implemented outside of the Gradle Pl
Error message
This feature is not yet implemented outside of the Gradle Plugin.
What it means
GenericGradleBuildFile.getInstalled() is an ExtensionManager implementation that intentionally throws IllegalStateException, because enumerating installed extensions requires the Gradle API which is only available inside the Gradle plugin, not in standalone devtools processes (see the TODO in the source).
Source
Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/buildfile/GenericGradleBuildFile.java:18
package io.quarkus.devtools.project.buildfile;
import java.io.IOException;
import java.util.Collection;
import io.quarkus.devtools.project.extensions.ExtensionInstallPlan;
import io.quarkus.devtools.project.extensions.ExtensionManager;
import io.quarkus.maven.dependency.ArtifactCoords;
import io.quarkus.maven.dependency.ArtifactKey;
/**
* TODO We need to find a way to use the gradle api outside of a gradle plugin
*/
abstract class GenericGradleBuildFile implements ExtensionManager {
@Override
public Collection<ArtifactCoords> getInstalled() throws IOException {
throw new IllegalStateException("This feature is not yet implemented outside of the Gradle Plugin.");
}
@Override
public Collection<ArtifactCoords> getInstalledPlatforms() throws IOException {
throw new IllegalStateException("This feature is not yet implemented outside of the Gradle Plugin.");
}
@Override
public InstallResult install(Collection<ArtifactCoords> coords) throws IOException {
throw new IllegalStateException("This feature is not yet implemented outside of the Gradle Plugin.");
}
@Override
public InstallResult install(ExtensionInstallPlan request) throws IOException {
throw new IllegalStateException("This feature is not yet implemented outside of the Gradle Plugin.");
}
@OverrideView on GitHub (pinned to e1c734241f)
Solutions
- Run the equivalent operation through the Gradle plugin/tasks (e.g. the Quarkus Gradle plugin's extension tasks) instead of the standalone API.
- Inspect build.gradle / the quarkus platform BOM dependency manually to determine installed extensions.
- Use the Quarkus Gradle plugin's listExtensions task: ./gradlew quarkusListExtensions or inspect ./gradlew quarkusDependencies if available.
Example fix
// before // devtools API on gradle project extManager.getInstalled(); // IllegalStateException // after // Gradle build // ./gradlew quarkusListExtensions
Defensive patterns
Strategy: type-guard
Validate before calling
if (extManager instanceof GenericGradleBuildFile) {
throw new UnsupportedOperationException("getInstalled() is unsupported outside the Gradle plugin");
} Type guard
boolean supportsProgrammaticListing(ExtensionManager m) {
return !(m instanceof GenericGradleBuildFile);
} Try / catch
try {
extManager.getInstalled();
} catch (IllegalStateException e) {
if (e.getMessage().contains("not yet implemented outside of the Gradle Plugin")) {
// switch to Gradle-plugin task or manual build.gradle inspection
}
} Prevention
- Check the ExtensionManager implementation type before calling listing APIs.
- For Gradle projects, expose extension info through Gradle tasks instead of the devtools API.
- Parse build.gradle platform dependencies directly when programmatic listing is unavailable.
When it happens
Trigger: Calling getInstalled() on a GenericGradleBuildFile outside a Gradle plugin execution — e.g. invoking the Quarkus CLI/devtools API directly against a Gradle project where the extension manager is backed by GenericGradleBuildFile.
Common situations: Listing installed Quarkus extensions on a Gradle project via the devtools API instead of Gradle tasks; IDE tools or scripts that assume Maven-style extension listing works for Gradle too.
Related errors
- There is no rootProject defined in this GradleBuildFile
- This operation is only supported for Gradle projects
- Failed to resolve ${appArtifact}
- Requested artifact ${appArtifact} does not match project ${g
- No platforms detected in the project
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/d183fa12fface7e1.
Report an issue: GitHub.