Skip to content

Commit 3a27b80

Browse files
authored
Merge pull request #45759 from gsmet/3.18.0-backports-1
[3.18] 3.18.0 backports 1
2 parents 2a7d4c4 + 3a4cf41 commit 3a27b80

File tree

98 files changed

+1365
-327
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+1365
-327
lines changed

bom/application/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
2727
<javax.inject.version>1</javax.inject.version>
2828
<parsson.version>1.1.7</parsson.version>
29-
<resteasy-microprofile.version>3.0.0.Final</resteasy-microprofile.version>
29+
<resteasy-microprofile.version>3.0.1.Final</resteasy-microprofile.version>
3030
<resteasy-spring-web.version>3.2.0.Final</resteasy-spring-web.version>
3131
<resteasy.version>6.2.11.Final</resteasy.version>
3232
<opentelemetry-instrumentation.version>2.8.0-alpha</opentelemetry-instrumentation.version>

core/runtime/src/main/java/io/quarkus/runtime/logging/LoggingSetupRecorder.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,8 @@ public void close() throws SecurityException {
261261

262262
namedHandlers.putAll(additionalNamedHandlersMap);
263263

264-
setUpCategoryLoggers(buildConfig, categoryDefaultMinLevels, categories, logContext, errorManager, namedHandlers);
264+
setUpCategoryLoggers(buildConfig, categoryDefaultMinLevels, categories, logContext, errorManager, namedHandlers,
265+
true);
265266
}
266267

267268
for (RuntimeValue<Optional<Handler>> additionalHandler : additionalHandlers) {
@@ -344,7 +345,7 @@ public static void initializeBuildTimeLogging(
344345
emptyList(), emptyList(), emptyList(), emptyList(), errorManager, logCleanupFilter,
345346
emptyMap(), launchMode, dummy, false);
346347

347-
setUpCategoryLoggers(buildConfig, categoryDefaultMinLevels, categories, logContext, errorManager, namedHandlers);
348+
setUpCategoryLoggers(buildConfig, categoryDefaultMinLevels, categories, logContext, errorManager, namedHandlers, false);
348349

349350
addNamedHandlersToRootHandlers(config.handlers(), namedHandlers, handlers, errorManager);
350351
InitialConfigurator.DELAYED_HANDLER.setAutoFlush(false);
@@ -482,7 +483,8 @@ public void run() {
482483
private static void addNamedHandlersToCategory(
483484
CategoryConfig categoryConfig, Map<String, Handler> namedHandlers,
484485
Logger categoryLogger,
485-
ErrorManager errorManager) {
486+
ErrorManager errorManager,
487+
boolean checkHandlerLinks) {
486488
for (String categoryNamedHandler : categoryConfig.handlers().get()) {
487489
Handler handler = namedHandlers.get(categoryNamedHandler);
488490
if (handler != null) {
@@ -493,7 +495,7 @@ public void run() {
493495
categoryLogger.removeHandler(handler);
494496
}
495497
});
496-
} else {
498+
} else if (checkHandlerLinks) {
497499
errorManager.error(String.format("Handler with name '%s' is linked to a category but not configured.",
498500
categoryNamedHandler), null, ErrorManager.GENERIC_FAILURE);
499501
}
@@ -506,7 +508,8 @@ private static void setUpCategoryLoggers(
506508
final Map<String, CategoryConfig> categories,
507509
final LogContext logContext,
508510
final ErrorManager errorManager,
509-
final Map<String, Handler> namedHandlers) {
511+
final Map<String, Handler> namedHandlers,
512+
final boolean checkHandlerLinks) {
510513

511514
for (Entry<String, CategoryConfig> entry : categories.entrySet()) {
512515
String categoryName = entry.getKey();
@@ -532,7 +535,7 @@ private static void setUpCategoryLoggers(
532535
}
533536
categoryLogger.setUseParentHandlers(categoryConfig.useParentHandlers());
534537
if (categoryConfig.handlers().isPresent()) {
535-
addNamedHandlersToCategory(categoryConfig, namedHandlers, categoryLogger, errorManager);
538+
addNamedHandlersToCategory(categoryConfig, namedHandlers, categoryLogger, errorManager, checkHandlerLinks);
536539
}
537540
}
538541
}

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/extension/QuarkusPluginExtension.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public void beforeTest(Test task) {
7474
Map<String, Object> props = task.getSystemProperties();
7575
ApplicationModel appModel = getApplicationModel(TEST);
7676

77-
SmallRyeConfig config = buildEffectiveConfiguration(appModel.getAppArtifact()).getConfig();
77+
SmallRyeConfig config = buildEffectiveConfiguration(appModel)
78+
.getConfig();
7879
config.getOptionalValue(TEST.getProfileKey(), String.class)
7980
.ifPresent(value -> props.put(TEST.getProfileKey(), value));
8081

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/AbstractQuarkusExtension.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.gradle.api.tasks.SourceSet;
2828
import org.gradle.process.JavaForkOptions;
2929

30+
import io.quarkus.bootstrap.model.ApplicationModel;
3031
import io.quarkus.gradle.dsl.Manifest;
3132
import io.quarkus.maven.dependency.ResolvedDependency;
3233
import io.smallrye.common.expression.Expression;
@@ -80,7 +81,7 @@ private BaseConfig buildBaseConfig() {
8081

8182
// Used to handle the (deprecated) buildNative and testNative tasks.
8283
project.getExtensions().getExtraProperties().getProperties().forEach((k, v) -> {
83-
if (k.startsWith("quarkus.")) {
84+
if (k.startsWith("quarkus.") || k.startsWith("platform.quarkus.")) {
8485
forcedPropertiesProperty.put(k, v.toString());
8586
}
8687
});
@@ -117,7 +118,9 @@ protected Manifest manifest() {
117118
return baseConfig().manifest();
118119
}
119120

120-
protected EffectiveConfig buildEffectiveConfiguration(ResolvedDependency appArtifact) {
121+
protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel) {
122+
ResolvedDependency appArtifact = appModel.getAppArtifact();
123+
121124
Map<String, Object> properties = new HashMap<>();
122125
exportCustomManifestProperties(properties);
123126

@@ -126,7 +129,7 @@ protected EffectiveConfig buildEffectiveConfiguration(ResolvedDependency appArti
126129

127130
// Used to handle the (deprecated) buildNative and testNative tasks.
128131
project.getExtensions().getExtraProperties().getProperties().forEach((k, v) -> {
129-
if (k.startsWith("quarkus.")) {
132+
if (k.startsWith("quarkus.") || k.startsWith("platform.quarkus.")) {
130133
forcedPropertiesProperty.put(k, v.toString());
131134
}
132135
});
@@ -140,6 +143,7 @@ protected EffectiveConfig buildEffectiveConfiguration(ResolvedDependency appArti
140143
defaultProperties.putIfAbsent("quarkus.application.version", appArtifact.getVersion());
141144

142145
return EffectiveConfig.builder()
146+
.withPlatformProperties(appModel.getPlatformProperties())
143147
.withForcedProperties(forcedPropertiesProperty.get())
144148
.withTaskProperties(properties)
145149
.withBuildProperties(quarkusBuildProperties.get())

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/Deploy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public Deploy() {
9191
public void checkRequiredExtensions() {
9292
ApplicationModel appModel = resolveAppModelForBuild();
9393
Properties sysProps = new Properties();
94-
sysProps.putAll(extension().buildEffectiveConfiguration(appModel.getAppArtifact()).getValues());
94+
sysProps.putAll(extension().buildEffectiveConfiguration(appModel).getValues());
9595
try (CuratedApplication curatedApplication = QuarkusBootstrap.builder()
9696
.setBaseClassLoader(getClass().getClassLoader())
9797
.setExistingModel(appModel)

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfig.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ private EffectiveConfig(Builder builder) {
6060
// 100 -> microprofile.properties in classpath (provided by default sources)
6161
// 0 -> fallback config source for error workaround (see below)
6262

63+
PropertiesConfigSource platformPropertiesConfigSource;
64+
if (builder.platformProperties.isEmpty()) {
65+
// we don't have the model yet so we don't have the Platform properties around
66+
platformPropertiesConfigSource = new PropertiesConfigSource(
67+
Map.of("platform.quarkus.native.builder-image", "<<ignored>>"), "platformProperties", 0);
68+
} else {
69+
platformPropertiesConfigSource = new PropertiesConfigSource(builder.platformProperties, "platformProperties", 0);
70+
}
71+
6372
this.config = ConfigUtils.emptyConfigBuilder()
6473
.forClassLoader(toUrlClassloader(builder.sourceDirectories))
6574
.withSources(new PropertiesConfigSource(builder.forcedProperties, "forcedProperties", 600))
@@ -70,9 +79,7 @@ private EffectiveConfig(Builder builder) {
7079
.withSources(new YamlConfigSourceLoader.InFileSystem())
7180
.withSources(new YamlConfigSourceLoader.InClassPath())
7281
.addPropertiesSources()
73-
// todo: this is due to ApplicationModel#getPlatformProperties not being included in the effective config
74-
.withSources(new PropertiesConfigSource(Map.of("platform.quarkus.native.builder-image", "<<ignored>>"),
75-
"NativeConfig#builderImage", 0))
82+
.withSources(platformPropertiesConfigSource)
7683
.withDefaultValues(builder.defaultProperties)
7784
.withProfile(builder.profile)
7885
.withMapping(PackageConfig.class)
@@ -122,6 +129,7 @@ static Builder builder() {
122129
}
123130

124131
static final class Builder {
132+
private Map<String, String> platformProperties = emptyMap();
125133
private Map<String, String> forcedProperties = emptyMap();
126134
private Map<String, ?> taskProperties = emptyMap();
127135
private Map<String, String> buildProperties = emptyMap();
@@ -134,6 +142,11 @@ EffectiveConfig build() {
134142
return new EffectiveConfig(this);
135143
}
136144

145+
Builder withPlatformProperties(Map<String, String> platformProperties) {
146+
this.platformProperties = platformProperties;
147+
return this;
148+
}
149+
137150
Builder withForcedProperties(Map<String, String> forcedProperties) {
138151
this.forcedProperties = forcedProperties;
139152
return this;

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildDependencies.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ private void jarDependencies(Path libBoot, Path libMain) {
144144
}
145145

146146
ApplicationModel appModel = resolveAppModelForBuild();
147-
SmallRyeConfig config = getExtensionView().buildEffectiveConfiguration(appModel.getAppArtifact(), new HashMap<>())
147+
SmallRyeConfig config = getExtensionView()
148+
.buildEffectiveConfiguration(appModel, new HashMap<>())
148149
.getConfig();
149150

150151
// see https://quarkus.io/guides/class-loading-reference#configuring-class-loading

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusBuildTask.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,13 +244,16 @@ void generateBuild() {
244244

245245
ApplicationModel appModel = resolveAppModelForBuild();
246246
SmallRyeConfig config = getExtensionView()
247-
.buildEffectiveConfiguration(appModel.getAppArtifact(), getAdditionalForcedProperties().get().getProperties())
247+
.buildEffectiveConfiguration(appModel, getAdditionalForcedProperties().get().getProperties())
248248
.getConfig();
249249
Map<String, String> quarkusProperties = Expressions.withoutExpansion(() -> {
250250
Map<String, String> values = new HashMap<>();
251251
for (String key : config.getMapKeys("quarkus").values()) {
252252
values.put(key, config.getConfigValue(key).getValue());
253253
}
254+
for (String key : config.getMapKeys("platform.quarkus").values()) {
255+
values.put(key, config.getConfigValue(key).getValue());
256+
}
254257
return values;
255258
});
256259

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusGenerateCode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public Set<File> getInputDirectory() {
119119
public void generateCode() throws IOException {
120120
ApplicationModel appModel = ToolingUtils.deserializeAppModel(getApplicationModel().get().getAsFile().toPath());
121121
Map<String, String> configMap = getExtensionView()
122-
.buildEffectiveConfiguration(appModel.getAppArtifact(), new HashMap<>()).getValues();
122+
.buildEffectiveConfiguration(appModel, new HashMap<>()).getValues();
123123

124124
File outputPath = getGeneratedOutputDirectory().get().getAsFile();
125125

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPluginExtensionView.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.gradle.process.JavaForkOptions;
3939
import org.gradle.util.GradleVersion;
4040

41+
import io.quarkus.bootstrap.model.ApplicationModel;
4142
import io.quarkus.deployment.pkg.PackageConfig;
4243
import io.quarkus.gradle.QuarkusPlugin;
4344
import io.quarkus.gradle.dsl.Manifest;
@@ -209,8 +210,10 @@ private void exportCustomManifestProperties(Map<String, Object> properties) {
209210
}
210211
}
211212

212-
protected EffectiveConfig buildEffectiveConfiguration(ResolvedDependency appArtifact,
213+
protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel,
213214
Map<String, ?> additionalForcedProperties) {
215+
ResolvedDependency appArtifact = appModel.getAppArtifact();
216+
214217
Map<String, Object> properties = new HashMap<>();
215218
exportCustomManifestProperties(properties);
216219

@@ -235,6 +238,7 @@ protected EffectiveConfig buildEffectiveConfiguration(ResolvedDependency appArti
235238
forced.put("quarkus.native.enabled", "true");
236239
}
237240
return EffectiveConfig.builder()
241+
.withPlatformProperties(appModel.getPlatformProperties())
238242
.withForcedProperties(forced)
239243
.withTaskProperties(properties)
240244
.withBuildProperties(getQuarkusBuildProperties().get())

0 commit comments

Comments
 (0)