@@ -71,37 +71,41 @@ public QuarkusCommandOutcome execute(QuarkusCommandInvocation invocation) throws
71
71
}
72
72
final ApplicationModel appModel = invocation .getValue (UpdateProject .APP_MODEL );
73
73
final ExtensionCatalog targetCatalog = invocation .getValue (UpdateProject .TARGET_CATALOG );
74
- final String targetPlatformVersion = invocation .getValue (UpdateProject .TARGET_PLATFORM_VERSION );
75
74
final ProjectState currentState = resolveProjectState (appModel ,
76
75
invocation .getQuarkusProject ().getExtensionsCatalog ());
77
- final ArtifactCoords projectQuarkusPlatformBom = getProjectQuarkusPlatformBOM (currentState );
78
- if (projectQuarkusPlatformBom == null ) {
79
- String error = "The project does not import any Quarkus platform BOM" ;
80
-
81
- invocation .log ().error (error );
82
- return QuarkusCommandOutcome .failure (error );
76
+ final ArtifactCoords currentQuarkusPlatformBom = getProjectQuarkusPlatformBOM (currentState );
77
+ var failure = ensureQuarkusBomVersionIsNotNull (currentQuarkusPlatformBom , invocation .log ());
78
+ if (failure != null ) {
79
+ return failure ;
83
80
}
84
- final QuarkusProject quarkusProject = invocation .getQuarkusProject ();
85
81
final ProjectState recommendedState = resolveRecommendedState (currentState , targetCatalog ,
86
82
invocation .log ());
83
+ final ArtifactCoords recommendedQuarkusPlatformBom = getProjectQuarkusPlatformBOM (recommendedState );
84
+ failure = ensureQuarkusBomVersionIsNotNull (recommendedQuarkusPlatformBom , invocation .log ());
85
+ if (failure != null ) {
86
+ return failure ;
87
+ }
88
+
87
89
final ProjectPlatformUpdateInfo platformUpdateInfo = resolvePlatformUpdateInfo (currentState ,
88
90
recommendedState );
89
91
final ProjectExtensionsUpdateInfo extensionsUpdateInfo = ProjectUpdateInfos .resolveExtensionsUpdateInfo (
90
92
currentState ,
91
93
recommendedState );
92
94
boolean shouldUpdate = logUpdates (invocation .getQuarkusProject (), currentState , recommendedState , platformUpdateInfo ,
93
95
extensionsUpdateInfo ,
94
- quarkusProject .log ());
96
+ invocation .log ());
95
97
Boolean rewrite = invocation .getValue (UpdateProject .REWRITE , null );
96
98
boolean rewriteDryRun = invocation .getValue (UpdateProject .REWRITE_DRY_RUN , false );
97
99
if (shouldUpdate ) {
100
+ final QuarkusProject quarkusProject = invocation .getQuarkusProject ();
98
101
final BuildTool buildTool = quarkusProject .getExtensionManager ().getBuildTool ();
102
+ // TODO targetCatalog shouldn't be used here, since it might not be the recommended one according to the calculated recommended state
99
103
String kotlinVersion = getMetadata (targetCatalog , "project" , "properties" , "kotlin-version" );
100
104
final Optional <Integer > updateJavaVersion = resolveUpdateJavaVersion (extensionsUpdateInfo , projectJavaVersion );
101
105
QuarkusUpdates .ProjectUpdateRequest request = new QuarkusUpdates .ProjectUpdateRequest (
102
106
buildTool ,
103
- projectQuarkusPlatformBom .getVersion (),
104
- targetPlatformVersion ,
107
+ currentQuarkusPlatformBom .getVersion (),
108
+ recommendedQuarkusPlatformBom . getVersion () ,
105
109
kotlinVersion ,
106
110
updateJavaVersion ,
107
111
extensionsUpdateInfo );
@@ -239,6 +243,15 @@ private static ArtifactCoords getProjectQuarkusPlatformBOM(ProjectState currentS
239
243
return null ;
240
244
}
241
245
246
+ private static QuarkusCommandOutcome <Void > ensureQuarkusBomVersionIsNotNull (ArtifactCoords bomCoords , MessageWriter log ) {
247
+ if (bomCoords == null ) {
248
+ String error = "The project state is missing the Quarkus platform BOM" ;
249
+ log .error (error );
250
+ return QuarkusCommandOutcome .failure (error );
251
+ }
252
+ return null ;
253
+ }
254
+
242
255
private static boolean logUpdates (QuarkusProject project , ProjectState currentState , ProjectState recommendedState ,
243
256
ProjectPlatformUpdateInfo platformUpdateInfo ,
244
257
ProjectExtensionsUpdateInfo extensionsUpdateInfo ,
0 commit comments