Skip to content

Commit b62aaef

Browse files
authored
Merge pull request #50558 from aloubyansky/maven-extension-cache-refresh
Add refresh parameter to create and add extension Maven plugin goals
2 parents 214ca90 + 35a8c6a commit b62aaef

File tree

3 files changed

+46
-17
lines changed

3 files changed

+46
-17
lines changed

devtools/cli-common/src/main/java/io/quarkus/cli/common/registry/RegistryClientMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class RegistryClientMixin {
2525
static final boolean VALIDATE = !Boolean.parseBoolean(System.getenv("REGISTRY_CLIENT_TEST"));
2626

27-
/** @see io.quarkus.cli.registry.ToggleRegistryClientMixin#setRegistryClient */
27+
/** @see io.quarkus.cli.common.registry.ToggleRegistryClientMixin#setRegistryClient */
2828
public final String getRegistryClientProperty() {
2929
return "-DquarkusRegistryClient=" + enabled();
3030
}

devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,12 @@ public class CreateProjectMojo extends AbstractMojo {
194194
@Parameter(property = "data")
195195
private String data;
196196

197+
/**
198+
* Whether to refresh the local extension catalog cache before searching for the recommended Quarkus extension versions
199+
*/
200+
@Parameter(property = "refresh", defaultValue = "false")
201+
boolean refresh;
202+
197203
@Component
198204
QuarkusWorkspaceProvider workspaceProvider;
199205

@@ -223,15 +229,7 @@ public void execute() throws MojoExecutionException {
223229
}
224230

225231
final MojoMessageWriter log = new MojoMessageWriter(getLog());
226-
ExtensionCatalogResolver catalogResolver;
227-
try {
228-
catalogResolver = QuarkusProjectHelper.isRegistryClientEnabled()
229-
? QuarkusProjectHelper.getCatalogResolver(mvn, log)
230-
: ExtensionCatalogResolver.empty();
231-
} catch (RegistryResolutionException e) {
232-
// fall back to the default platform
233-
catalogResolver = ExtensionCatalogResolver.empty();
234-
}
232+
ExtensionCatalogResolver catalogResolver = getExtensionCatalogResolver(mvn, log);
235233
ExtensionCatalog catalog = resolveExtensionsCatalog(this, bomGroupId, bomArtifactId, bomVersion, catalogResolver,
236234
mvn, log);
237235

@@ -345,6 +343,24 @@ public void execute() throws MojoExecutionException {
345343
}
346344
}
347345

346+
private ExtensionCatalogResolver getExtensionCatalogResolver(MavenArtifactResolver mvn, MojoMessageWriter log) {
347+
if (!QuarkusProjectHelper.isRegistryClientEnabled()) {
348+
return ExtensionCatalogResolver.empty();
349+
}
350+
ExtensionCatalogResolver catalogResolver;
351+
try {
352+
catalogResolver = QuarkusProjectHelper.getCatalogResolver(mvn, log);
353+
if (refresh) {
354+
getLog().debug("Clearing local extension catalog cache");
355+
catalogResolver.clearRegistryCache();
356+
}
357+
} catch (RegistryResolutionException e) {
358+
// fall back to the default platform
359+
catalogResolver = ExtensionCatalogResolver.empty();
360+
}
361+
return catalogResolver;
362+
}
363+
348364
static ExtensionCatalog resolveExtensionsCatalog(AbstractMojo mojo, String groupId, String artifactId, String version,
349365
ExtensionCatalogResolver catalogResolver, MavenArtifactResolver artifactResolver, MessageWriter log)
350366
throws MojoExecutionException {

devtools/maven/src/main/java/io/quarkus/maven/QuarkusProjectMojoBase.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ public abstract class QuarkusProjectMojoBase extends AbstractMojo {
6666
@Parameter(property = "bomVersion", required = false)
6767
String bomVersion;
6868

69+
/**
70+
* Whether to refresh the local extension catalog cache before searching for the recommended Quarkus extension versions
71+
*/
72+
@Parameter(property = "refresh", defaultValue = "false")
73+
boolean refresh;
74+
6975
@Component
7076
QuarkusWorkspaceProvider workspaceProvider;
7177

@@ -136,14 +142,21 @@ private ExtensionCatalog resolveExtensionCatalog() throws MojoExecutionException
136142
}
137143

138144
protected ExtensionCatalogResolver getExtensionCatalogResolver() throws MojoExecutionException {
139-
if (catalogResolver == null) {
140-
try {
141-
catalogResolver = QuarkusProjectHelper.isRegistryClientEnabled()
142-
? QuarkusProjectHelper.getCatalogResolver(catalogArtifactResolver(), getMessageWriter())
143-
: ExtensionCatalogResolver.empty();
144-
} catch (RegistryResolutionException e) {
145-
throw new MojoExecutionException("Failed to initialize Quarkus extension resolver", e);
145+
return catalogResolver == null ? catalogResolver = initExtensionCatalogResolver() : catalogResolver;
146+
}
147+
148+
private ExtensionCatalogResolver initExtensionCatalogResolver() throws MojoExecutionException {
149+
if (!QuarkusProjectHelper.isRegistryClientEnabled()) {
150+
return ExtensionCatalogResolver.empty();
151+
}
152+
final ExtensionCatalogResolver catalogResolver;
153+
try {
154+
catalogResolver = QuarkusProjectHelper.getCatalogResolver(catalogArtifactResolver(), getMessageWriter());
155+
if (refresh) {
156+
catalogResolver.clearRegistryCache();
146157
}
158+
} catch (RegistryResolutionException e) {
159+
throw new MojoExecutionException("Failed to initialize Quarkus extension resolver", e);
147160
}
148161
return catalogResolver;
149162
}

0 commit comments

Comments
 (0)